All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- update
ApplyColorVariablesplugin to allow a broader range of nested colours and any number of dashes in token names.
- update
Containerplugin to fix nested selector warnings.
- fix
Spacingplugin to support negative values with spacing groups.
- fix case that a class like
top-[var(--offset)](or worse a combo likedata-[header-sticky=true]:data-[header-reveal=true]:top-0 data-[header-sticky=true]:top-[var(--offset)]) confuses the Tailwind parser when usingmatchUtilitiesinside theSpacingplugin. Now better checking passed value in thematchUtilitiesfunction matches a spacing group before trying to make CSS.
- increased specificity of
containerandbreakoutselectors by adding[class]to selector to defeat Tailwind's build incontainerutility, which we can't disable
Spacingnow has ability to specify strings such asclamp(64px, 64px + 1vw, 200px)in responsive spacing groups- notes Vite, Stylelint, Class name and CSS migration from Tailwind 3 to Tailwind 4
- reverted plugin names to PascalCase from camelCase
Upon the release of Tailwind 4, many of our plugins became incompatible and so updates have been required to enable their continued use in the Tailwind ecosystem.
We leaned that styles added with addBase always appear in the CSS, even if not used and require to be purged. And the rules around what we can add are no longer the same, so selectors like *[class*="scrollbars"] are no longer allowed, utilities and components must begin with properly formed CSS class names, such as .scrollbars. CSS processing for previously allowed CSS from JS like @screen and @apply are no longer functioning in Tailwind 4. Tailwind 4 also removes the e() escape function.
matchUtilities/matchComponents turn out to be very handy for dynamically generating classes like .foo-N to .foo { property: N }, along with negative variants when supportsNegativeValues: true, is passed to the options.
- ColorTokens uses
addBaseto add its root variables to the CSS - ColorTokens now prepends
color-to the generated CSS properties to be more inline with Tailwind naming scheme - Typography uses
addUtilitiesto add the utility classes - Typography now prepends
font--to the generated CSS properties to be more inline with Tailwind naming scheme - Container now uses
addUtilities - DevTools now uses
addComponents - GridGap now uses
addUtilities - Spacing now uses
matchUtilities - Layout now uses
matchUtilitiesandaddComponents(This requires a format change fromw-N-colstow-cols-N) - GridLine now uses
addComponentsandmatchComponentsand produces less CSS than previous versions - KeyLine now uses
matchComponents - BackgroundFill now uses
matchUtilitiesandaddUtilities - StrokeFull now uses
matchUtilitiesandaddUtilities - Underline now uses
matchUtilitiesand refactored class structure - FullBleedScroller now uses
addComponents - Scrollbar now uses
addBase,addComponentsandmatchComponents
Patch version to usurp older patch versions and include older changelog entries for content property fixes in GridLine, Keyline and RatioBox.
- replaced
contentproperty ofGridLine,KeylineandRatioBoxfor Chrome 133 compatibility
peandpsinLayoutmapping to incorrectpadding-leftandpadding-right- instances of non logical x-axis property CSS updated to logical properties in all plugins (margins, paddings, left/right and borders)
- add
ms-,me-,ps-,pe-,start-andend-toSpacingplugin (to matchLayoutplugin). ((CSS logical properties)[https://tailwindcss.com/blog/tailwindcss-v3-3#simplified-rtl-support-with-logical-properties])
- Make sure the
GridLayoutandGridGapplugins are working with prefix.
- Changed
Typographyplugin to allow any font/text property, which also fixes the overriding caveat of being limited to a preset list of properties
- added
text-transformtoTypographyplugin defaults
- fixed
Typographyplugin generating excessive CSS variables for smaller CSS output
- Fix typo in frontend config, this is a breaking change as this require updating config file when upgrading to this version :
For Spacing now use "arbitraries" instead of "arbritraries"
- replaced
contentproperty ofGridLine,KeylineandRatioBoxfor Chrome 133 compatibility
- Underline - Improve how underline variants are generated
- Fix usage of a global Prefix with the plugins
For example by setting up
a17-as prefix, the generated classes will look like this :.container => .a17-container .f-heading-01 => .a17-f-heading-01
npm auditupdated browser sync- updated node version to
20.11.0
Typographyplugin updated to fix broken typography CSS variable names when making CSS changes whilst using Vite to compile Previously, the responsive CSS variables could get erroneous duplicates of the type style name in the variable name - eg:The behavior seemed only to manifest itself in Vite 5. An updated deep clone and an update to property naming fixes the issue.@media (min-width: 990px) :root { --f-h1--f-h1-font-size: 3rem; } }
- Update dependencies - TailwindCSS >2.4.x
- ran
npm update
- add
ms-,me-,ps-,pe-,start-andend-toLayoutplugin. ((CSS logical properties)[https://tailwindcss.com/blog/tailwindcss-v3-3#simplified-rtl-support-with-logical-properties])
- make vw calc variants demo more clear
- layout and typography tests updated
- ran eslint/prettier
- ran
npm update
- refactor typography generation to use CSS variables to allow overridable type
Readme updated
BackgroundFill- draws a 100vw background colour pseudo layerStrokeFull- draws a 100vw stroke pseudo layer
Re-arranged index.html to group plugins.
Docs have been added to this repo, using GitHub pages, see /docs/README.md.
- update
ApplyColorVariablesto handle-in token names better - e2bbb75
Can now handle:
"color": {
"tokens": {
"grey-950": "#0D0C0C",
"grey-900": "#1B1918",
"grey-850": "#282525",
"grey-700": "#ADADAD",
"grey-100": "#D3D3D3",
"green": "#4BB543",
"red": {
"100": "#D3B2C0",
"400": "#EF4637",
"500": "#EE3523",
"700": "#772848",
"800": "#6C002C"
},
"purple": "#793CB8",
"purple-light": "rgba(121, 60, 184, 0.1)"
},
"text": {
"text": "grey-700",
"go": "green",
"danger": "red-400",
"tag": "purple",
"tip": "purple-light",
"custom": "#00f"
}
}
Previously the text-tip would be incorrectly set to var(--purple) and not var(--purple-light) as the ApplyColorVariables func would find purple before purple-light.
- Clean and lock dependencies version - f844563
Merged PRs:
- Spacing Group Updates - 5
- Update test snapshot and docs css with tailwind-3.1.6 - 4
- Update Github link - 3
- Prettier and ESLint upgrades - 2
- Added gap and positioning properties to spacing plugin - 5
- Added prettier and eslint as npm scripts - 2
- Tailwind version of docs updated to latest - 5
- Container and Typography tests updated - 4
- Update Github link in docs 3
- Upgraded prettier and eslint (and corresponding plugins) to latest stable versions - 2
- Set
trailingComma = es5, as it looked like that was already been used in most places - 2
- Removed deprecated config from
.eslintrc- 2
Adds FullBleedScroller, InteractionMediaQueries and Scrollbar to src/index
New plugins, FullBleedScroller, InteractionMediaQueries and Scrollbar, updates to Container to make it more useful and vw additions to Layout.
FullBleedScroller- easy full bleedoverflow-x: autoscrolling containersInteractionMediaQueries- adds interaction based media queries, think targeting devices with hover capabilityScrollbar- scrollbar styling, unifies the CSS standard and non-standard scrollbar styling
Containerhas been refactored to- allow nesting of
.container .breakoutcontrols gutters to be inline with.containerif need be.container-resetand.breakout-resetstyles added
- allow nesting of
Layouthas additionalvwcalc based width/spacing options
Updated Underline plugin to add utility classes from Tailwind config theme colours and a dedicated them underline colour list.
Underlineplugin- adds utility classes from
theme.colors(not name spaced) - adds utility classes from
theme.underlineColor(not name spaced) - retains utility classes from
theme.textColor,theme.borderColorandtheme.backgroundColor(name spaced as before)
- adds utility classes from
docs/Underline- updated to document changes to plugin
Documentation ported from dedicated repository to live inside the main plugins repository.
- Added
docsfolder with a collection of PHP files, Tailwind config files and CSS files. And aREADMEto explain how to run the documentation locally. - Added code of conduct
package.jsonnow as dependencies for generating the Tailwind documentation@area17/a17-tailwind-pluginsto use the plugins in the docs- updated versions of
postCSSandtailwindcss - added
browser-syncand updated version ofdotenv
- Sample config file have been moved to the
docsfolder, these are now actual config files styling the documentation build
Updated SpacingTokens plugin to auto generate spacing tokens.
SpacingTokensplugin re-written- can now auto generate a spacing token scale based on multiples of 5
- generates arbitrary 0 - 10px spaces
- can specify the scale to use
- can specify other arbitrary values
- can still specify a full scale as before (no breaking change)
Added GridLayout plugin
GridLayoutplugin - generates CSS grid utility classes to set elements onto the design grid
Removed console.log from GridLine
GridLineplugin, removedconsole.log
Removed references to old Git repository
- readme
- removed reference to old sample files
- changelog
- removed git diff urls
Fixed bug with GridLine CSS generation which could affect grid lines on last row of complex grid line setups
- split comma separated selectors in
GridLineplugin into their own selectors so that survive CSS purging better with JIT
Added CssInJs and Components plugins.
CssInJsplugin - allows you to pass through CSS from your Tailwind configComponentsplugin - allows you to generate component CSS from your Tailwind config
Added Underline plugin.
Underlineplugin - for modern CSS text underline styling
Refactored Layout plugin, generates more classes which are closer aligned to Tailwind classes.
- Layout plugin has been totally re-factored
- added ability to nest
- fractional values can now also be used, eg:
w-1/2-cols - now generates Tailwind like
w-N-colstype classes for widths m?-margin classes for push/pulls:ml-N-cols,mr-N-cols,mx-N-cols,-ml-N-cols,-mr-N-cols,-mx-N-colsp?-padding classes:pl-N-cols,pr-N-cols,px-N-cols- margins, paddings and positioning assume added inner gutters, a full series of gutter-less versions are also generated
- the generated class names in the Layout plugin have been changed to align them closer to Tailwind. See the migration notes
- replaced
contentproperty ofGridLine,KeylineandRatioBoxfor Chrome 133 compatibility
- Change Layout plugin to use
addComponentsvsaddUtilitiesto allow theflex-directionto be overwritten with the Tailwind classes
Fixes some responsive bugs with Layout and adds pull and left/right classes for absolute positioning.
Layoutplugin- using Tailwind native
prefix()function to fix responsive bugs when usingcols-containeronly at larger breakpoints - no longer makes
cols-0and correctly makes a class for the largest column
- using Tailwind native
Layoutplugin- added
pull,pull-r,leftandrightclasses for more layout options based on design columns
- added
package.json updated to include repository and homepage info.
Readme updated to point to remote docs: http://tailwind-plugins.dev.area17.com/ Moved repo to GitHub.
Adds refactored RatioBox and GridLine plugins
- fix sample config JSON fixed breakpoint outer gutter
- fix sample config include and color token name
- added refactored RatioBox with new expandable box and ratio freer classes
- add refactored gridline plugin
- allows prefix and more consistent results across breakpoints
- Prefixing classes with
prefixoption intailwind.config.js - issue in
ApplyColorVariableswhen colors are undefined which would break builds
- Spacing group plugin now always outputs breakpoint spacing info in correct breakpoint order (not the order a user specifies breakpoints in their config)
- Added spacing tokens plugin to convert spacing tokens from
pxtorem
- Typography plugin converts
pxtorem - Spacing plugin converts
pxtorem - Spacing tokens added to tailwind config sample
- Spacing tokens and spacing groups split out in config JSON
- Removed console log
- Using dashes in the color name when declaring colors in a js object was breaking the var output
Large refactor, rewrite and added new things.
- remove dependency on lowdash
- now uses
frontend.config.jsonfor set up - adds
GridLineplugin GridGapuses CSS variables- adds
RatioBoxplugin - no longer uses
getFirstBputility - adds color token CSS variables
Fix nested .cols-container element left margin in Layout plugin
Layoutplugin: only immediate child[class*="cols-"]inside of.cols-containerget aguttermargin to stop.cols-container's inside of.cols-Ngetting theirmargin-leftreset
Initial public release