- Copy code to clipboard functionality
- Handle RGB color token values
- Update dependencies
- Update styles of A11y plugin UI
- Require Node.js >= 16.16 (current latest LTS)
- Nunjucks adapter provided by @CosAnca.
- Require Node.js >= 14.15 (current latest LTS)
- UI overhaul, major thanks and props to @CosAnca!
- Add logo option to config
- Extend tokens representations with opacity, box-shadow and border styles.
- Add theme labels for preview iframes
- Official logo, thanks @janpersiel!
- Require Node.js >= 12.16 (current latest LTS)
- Removed migrations for v2
- Deprecated
@uiengine/bridge-theo
- Plugins API, see the plugin docs.
- UI: Re-add variant HTML to code view. Thanks @therealpecus
- Performance optimizations
- EJS: Adapter upgrades to EJS 3
- Webpack: Set correct chunk names
- Core: Correct error report in case config file cannot be read
- Windows compatibility
- Webpack adapter: Add
debug
option for displaying detailed build information - Provide custom page
foot
via theui
config.
- Webpack adapter: Removed
extensions
option (now they are inferred automatically) - Deprecated
@uiengine/adapter-react
and@uiengine/adapter-vue
- Please use the Webpack adapter
- Webpack adapter: Improve build
- Core: Build performance improvements
- Webpack adapter warns about incorrect config
- UI does not display nested properties anymore
- Will be brought back once prop-types parsing gets revised.
- Improve Webpack adapter build
- Deprecated Vue adapter, please use the Webpack adapter.
- UI: Asset prefetch paths got fixed
- Webpack adapter production ready
- Support dependency graph and property extartion for Vue and React
- Support for the
filesForComponent
andfilesForVariant
hooks - See the Webpack adapter docs for details.
- Custom file watches can be listed as
source.additionalWatches
in the config- See the
config.source
docs for details.
- See the
- Lazy load preview iframes to improve performance on component pages with many variants.
- Pages can now also define a
fragment
, which works similar to thetemplate
.- See the page documentation for details.
- Removed variant parts and rendered output from state as it bloats up the UI file size.
- Provide custom meta tags via the
ui
config. - Option to restrict variant display to a list of given theme ids.
- See the
themeIds
option of the variant configuration.
- See the
- Experimental Webpack adapter
- See the Webpack adapter docs for details.
- Requires the
<!-- uiengine:foot -->
comment to be present in the template.
- Option to restrict token display to a list of given theme ids changes from
theme
tothemeIds
.- See the
themeIds
option of the token configuration.
- See the
- HTML escaping in titles
- Improved Windows compatibility, feedback welcome!
- The pen icon in the interface opens files in VS Code when working locally
- Pages can be set to be initially collapsed – see the docs
@uiengine/core
exports themarkdown
function to transform markdown to html
- Themes are now a first-class citizen and widely supported
- The
themes
config option moved to the root level config (previouslyui.themes
) - Each variant and page gets rendered per theme
- The adapters
render
function gets thethemeId
as an option
- The
- Moved
analyticsId
config option intoui
config. - The
filesFor…
adapter function now also receive theoptions
as first argument - Extracted Theo integration into its own
@uiengine/bridge-theo
package - YAML and Frontmatter in Markdown files has been removed.
- File changes:
- component.md -> component.config.js and README.md
- page.md -> page.config.js and README.md
- data.yml -> data.js (deprecated, see below)
- Entity.yml -> Entity.js
- Use the
npx uiengine migrate
command to automatically migrate
- File changes:
- Removed
source.data
config option- Require files directly in your
component.config.js
orpage.config.js
.
- Require files directly in your
- Removed
source.entities
config option- Require files directly in your
component.config.js
. - One less custom concept to worry about :)
- Require files directly in your
- Removed
ui.customActions
- Will be replaced with a third-party plugin API
- CSS Adapter: Parses css files for custom properties and display theme settings for components.
- For details see the CSS adapter docs.
- React Adapter: Partial support for PropType definitions in external files
- The UI displays theme properties (css custom properties)
- Override locales or single keys in a locale
- For details see the UI docs.
- Improved the styles and structure for content pages and elements
- Tl;DR More whitespace and bigger fonts
- The
intro
anddetails
containers got added
- Dependency graph for components
- Adapters can extract the dependencies and dependents in
registerComponentFile
- Component dependencies and dependents get displayed in the UI
- Component changes rebuild the dependent variants and templates automatically
- The React and Pug adapters support this already
- Adapters can extract the dependencies and dependents in
- Option
ui.repoBaseUrl
for linking components and pages to the repo- For details see the UI docs.
- Removed parent package
uiengine
- use scoped packages directly, e.g.
@uiengine/core
plus@uiengine/adapter-html
- use scoped packages directly, e.g.
- Allow
source.components
config to define lists of directories - Config overrides for CLI (see CLI help/usage for details)
- Option
skipScaffold
for adapters- Prevents creation of files for components and variants
- Replaces the cli
--exclude
flag for theuiengine component
command - See the adapters documentation for details.
- Removed filesFor hooks from html adapter
- The html adapter is part of the standard install, but it is unlikely that you would want to generate the files for every new component.
- Variant ID and filename contain the index
- allows for rendering multiple variants based on the same file
- CLI commands (init, component, page) do not overwrite existing files
- unless the
--force
flag is provided
- unless the
- Windows compatibility
- Proper handling of scroll position on navigation
First public stable release. 🎉
For details see the UIengien 1.0 blog post.
- Set browser-sync
startPath
for custom UI base - New documentation site, generated with the UIengine itself
- Improved the CLI flags and usage docs
- Improved React adapter hooks
- Improved React adapter Properties extraction
- Skip generating HTML Sketchapp export if template is missing
- Adapters
registerComponentFile
functions can extract and return information from component files- Use this to generate documentation from your #React PropType definitions etc.
- See the adapters documentation for details.
- Option to wrap the content of a custom page template in the preview template
- In case you want to provide only the content of the
<body>
. - Works like with variants, whose content replaces the
uiengine:content
comment.
- In case you want to provide only the content of the
- Internal links in documentation are now handled via the UI router.
- Use theme hash across all previews and links
- Display of indented code blocks
- Viewports are a new preview mode in addition to breakpoints
- See the
ui.viewports
documentation for details
- See the
- Rebuild variants and tokens on preview template change
- The comment
<!-- uiengine:class -->
now also gets replaced in the preview template- This should be added to the
html
tag and can be used for customizing special previews.
- This should be added to the
- CSS custom properties used by UIengine are now prefixed with
--uie-
- In case you are using the
ui.customStylesFile
you need to update the UIengine custom properties.
- In case you are using the
- Hide inactive scrollbars on Windows
- Fonts are now part of the html-sketchapp export
- Copy page files in subfolders
- Demo content (pages and components) can be generated on initialization
- Use the
uiengine init --demo
command - This should give a basic overview for some of the features
- Beware: It uses the html adapter, hence the components are very simplistic!
- Use the
- Design token rendering:
- The tokens are now rendered as part of the preview template
- Added the token types
font
andicon
- For details see the design token docs
- Reduced file watching delay for faster refreshes
- Optional theme switch for your projects themes
- For details see the UI docs
- The adapter
render
function can now return structured data- For details see the adapter docs
- The output can be served from a subdirectory
- For details see the new
base
theme option
- For details see the new
- Rename the
@uiengine/theme
package to@uiengine/ui
- Changed the main config object
theme
toui
:- The former
theme.options
moved into theui
config object. - Moved the
breakpoints
into the newui
config object. - Removed the
module
option. - For details see the UI docs
- The former
- Use scoped packages on npm:
uiengine
->@uiengine/core
uiengine-theme
->@uiengine/theme
(note: renamed to@uiengine/ui
with v0.19.0)uiengine-adapter-XYZ
->@uiengine/adapter-XYZ
- Integration for [html-sketchapp]
- Generates Sketch libraries via html-sketchapp-cli compatible export
- For details see the integration docs
- Replace the
variantTemplate
config entry key name withtemplate
- Rename the
uiengine-theme-default
package to ``uiengine-theme`
- Search for pages and components title, tags and content excerpt
- Tags for pages, components and variants
- Can be used to cross-reference and search items
- Ability for toggling the navigation on desktop breakpoints
- Links in footer to navigate to the previous and next page
- Settings for locale and highlight.js theme
- Integration for Google Analytics
- Provide your
analyticsId
(UA-XXX-X
) in the project config
- Provide your
- Variant data moved into component config
- For details see the variant docs
- More flexible configuration lookup
- The config file is now retrieved via cosmiconfig
- The default config file is
uiengine.config.js
- For alternative ways to store your config (e.g. in package.json) see the cosmiconfig docs
-
Simplified templates config and template references
- The
templates
entry in the config file got removed - The
variantTemplate
entry got added to the config file - Templates need to be referred to in page config by full name (including the file extension)
- Templates are still resolved relative to
source.templates
- The
-
Wording changed from "schema" to "entities" and "properties"
- This reflects the actual use case and intention of the feature better
-
The UI is now extendible via CSS custom properties
- The
skin
option for the UI has been removed - You can now style the UI using the
customStylesFile
option
- The
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.