All notable changes to this project will be documented in this file.
This change log follows the conventions of keepachangelog.com.
2024-8-26
- Refactor of all reporting, warning, and error messaging
- Uses
io.github.paintparty/bling
for warning and error templating and printing
io.aviso/pretty
dep removed.
2024-7-6
- New
kushi.ui.playground
design and implementation, which drives thedesign.kushi
interactive site running on Github Pages. - Enhanced docs on all UI components.
- New utility classes:
:.offscreen
:.neutralize
:.convex
,:.convex-0
~convex-5
:.sans
and:.serif
- New
kushi.ui.divisor.core/divisor
component and related$:divisor-*
tokens and:.divisor-*
utility classes.
- Updated
kushi.ui.link
component - Updated
kushi.ui.switch.core/switch
to use:.no-shrink
class - Positioning bug in popover pane placement logic #530b005
-
The following components have been renamed:
kushi.ui.alert.core/alert
->kushi.ui.callout.core/callout
kushi.ui.progress.core/progress
->kushi.ui.progress.core/spinner
kushi.ui.progress.core/spinner
->kushi.ui.progress.core/donut
kushi.ui.input.text.core/input
->kushi.ui.text-field.core/text-field
-
All
<input>
related component namespaces have been simplified:kushi.ui.input.checkbox.core
->kushi.ui.checkbox.core
kushi.ui.input.radio.core
->kushi.ui.radio.core
kushi.ui.input.slider.core
->kushi.ui.slider.core
kushi.ui.input.switch.core
->kushi.ui.switch.core
kushi.ui.input.text.core/input
->kushi.ui.text-field.core/text-field
-
All uses of
fg
in token and utility class names has been hydrated toforeground
:
$neutral-fg
->$neutral-foreground
:.neutral-fg
->:.neutral-foreground
-
:$progress-animation-duration
->:$spinner-animation-duration
-
Default value of
$pane-min-width
is now70px
-
Default value of
$pane-min-height
is now35px
2024-3-21
- New floating layer abstraction & tooltip implementation. Closes #43. Closes #47.
- New popover component. Closes #49.
- New toast component. Closes #46.
- Dependency on
design.kushi/domo
in place ofkushi.ui.dom
- Typos in animation utility classes.
- Removed
:-reveal-on-click?
:-reveal-on-click-duration
from tooltip. These will resurface in upcoming toggle tip or popover component. - Removed
kushi.dom.ui
namespace. Replaced by dependencydesign.kushi/domo
2023-5-17
- Textarea primitive support via
:-textarea?
option onkushi.ui.input.text/input
component. Closes #43
- Support normalization of keywords for equality checks within conditional class application in sx macro
- sans/sans-serif utility class typo, Fixes #39
kushi.ui.modal
documentation instructions, Fixes #42- Accordion typos
- css var tuple support
- kushi.ui.collapse.core/accordian -> kushi.ui.collapse.core/accordion
2023-5-17
kushi.core/breakpoints
kushi.core/token->ms
- Support mixing of shorthand and map notation in argument to sx macro
- Support
has-parent()
andhas-ancestor()
- Support all pseudo and combo selectors
:add-css-reset?
option adds css reset to stylesheet
kushi.core/add-google-font!
kushi.core/add-google-material-symbols-font!
- Added type scale system
- Ability to create custom type scale system with half-step shifts.
- Introduced use of
$
syntax for css variables"var(--foo)"
->:$foo
- Non-combo flex utility classes such as
:.shrink
:.grow
- Combinatorial absolute and fixed positioning utilities such as
:.after-absolute-centered
and:.northwest
- Augmented display utility classes with
:.inline-block
,:.inline-flex
, etc. - `:.enhanceable`` utility class for icons
:.xxxtight
~:.xxxloose
utility class scale for tracking:.xxxfast
~:.xxxloose
utility class scale for animations:.rounded-xxxsmall
~:.rounded-xxxlarge
utility class scale for rounded-corners:.convex
,:.debossed
,:.elevated-0
~:.elevated-5
-
Added a
kushi.ui.*
set of namespaces for library components which includes- Button
- Radio
- Checkbox
- Switch
- Input
- Slider
- Tooltip
- Icons
- Tag
- Label
- Card
- Alert
- Modal
- Collapse
- Accordion
- Grid
-
kushi.ui.core/lightswitch!
for toggling between light and dark modes. -
kushi.ui.progress.core
ns with basics components for animated loading/progress indicators.
- Added complete design system with light/dark support across variants:
- Semantic variants:
neutral
warning
positive
negative
accent
- Kind variants:
default
minimal
bordered
filled
- Shape variants:
pill
rounded
sharp
- Semantic variants:
- Ability to theme with user
.edn
theme file. - Color pallet of
gray
,purple
,blue
,green
,lime
,yellow
,gold
,orange
,red
,magenta
, andbrown
- Scaled transparent grayscale design tokens e.g.
$white-transparent-50
,$dark-gray-transparent-15
, etc. :.bordered-red
,:.bordered-blue
, etc. for all colors in stock kushi pallette.- Support syncing of type weight with radio and checkbox outline/border-width
- Added a
kushi.playground.*
set of namespaces for generating interactive documentation site for projects.
- Ability to elide sections of css output by category.
- Added various
:log-*
options to config to control what gets logged on each build.
- Added
kushi.ui.dom
utility namespace for helper fns likecopy-to-clipboard!
,scroll-into-view!
,screen-quadrant
, and many more.
kushi.core/merge-with-style
renamed tokushi.core/merge-attrs
- Uses Material Symbols instead of Material Icons
kushi.core/merge-with-style
renamed tokushi.core/merge-attrs
kushi.core/add-system-font-stack
- Explicit
map-mode
.
2022-1-14
-
map-mode
, which enables opting-in to project-wide style-map syntax instead of default atomic syntax -
thin
,extra-light
,light
,regular
,medium
,semi-bold
,bold
,extra-bold
,heavy
props to built-in atomic classes. These correspond tofont-weight
values100
-900
. -
italic
andoblique
(font-style
) to built-in atomic classes -
visibility
prop to available shorthand list. -
zi
(z-index) prop to available shorthand list. -
data-cljs
attribute (ns and LOC info) is automatically added to styled elements for dev builds -
Example reageant project.
-
:select-ns
config option for narrowing compilation to select namespaces -
Support for error reporting and assertion errors in the case of duplicate
keyframe
names, duplicatedefclass
names, and duplicate:prefix
+:ident
combos. -
Support for bad modifier warnings.
-
User-defined media queries (breakpoints) scale in kushi.edn now expects a vector of kwargs (instead of a map)
-
defkeyframes
now takes a symbol as name, instead of a keyword -
Use
:ancestor
instead of:parent
for ancestor prefixing options -
Removed
:sans-serif
,:serif
, and:code
from built-in atomic classes. -
Removed kushi-specific
:fn
key in attributes map to refer to var-quoted component function. -
Refactored
stylesheet
andreporting
namespaces.
-
Bad arg console warnings for
defclass
-
Ensure correct printing order of media query rules
-
deref
'ed atoms use the same css var naming convention as normal bindings -
Pre-formatting of js warnings for bad args fixes edge case dev build exceptions.
2021-08-16
- Conditional application of classes
- Browser console warnings for invalid number values
- Diagnostic printing config options
2021-08-10
- Console warnings for
defclass
andsx
- Diagnostic printing
2021-08-06
Initial commit.