@redspartanlabs/spartacss 0.0.0-stage → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +499 -0
- package/LICENSE +201 -0
- package/NOTICE +123 -0
- package/README.md +287 -2
- package/RELEASING.md +302 -0
- package/dist/sparta-all.css +5566 -0
- package/dist/sparta-all.min.css +1 -0
- package/dist/sparta-icons.css +953 -0
- package/dist/sparta-icons.min.css +1 -0
- package/dist/sparta-notifications.css +607 -0
- package/dist/sparta-notifications.min.css +1 -0
- package/dist/sparta.css +851 -0
- package/dist/sparta.min.css +1 -0
- package/dist/spartacss.css +4325 -0
- package/dist/spartacss.min.css +1 -0
- package/docs/README.md +123 -0
- package/docs/accessibility.md +125 -0
- package/docs/accordion.md +79 -0
- package/docs/adr/0001-package-architecture.md +56 -0
- package/docs/adr/0002-versioning-and-stability-policy.md +104 -0
- package/docs/adr/0003-independent-iconography-system.md +154 -0
- package/docs/adr/0004-git-tag-artifact-distribution.md +146 -0
- package/docs/adr/0005-canonical-ui-component-standard.md +306 -0
- package/docs/adr/0006-npm-registry-distribution.md +112 -0
- package/docs/alert.md +75 -0
- package/docs/app-shell.md +97 -0
- package/docs/avatar.md +105 -0
- package/docs/badge.md +120 -0
- package/docs/breadcrumbs.md +69 -0
- package/docs/button.md +92 -0
- package/docs/card.md +79 -0
- package/docs/code.md +88 -0
- package/docs/design/component-standard.md +787 -0
- package/docs/design/icon-provenance-inventory.md +171 -0
- package/docs/design/icon-standard.md +365 -0
- package/docs/divider.md +78 -0
- package/docs/drawer.md +114 -0
- package/docs/dropdown.md +93 -0
- package/docs/empty-state.md +64 -0
- package/docs/extraction-plan.md +116 -0
- package/docs/forms.md +207 -0
- package/docs/icons.md +94 -0
- package/docs/kbd.md +52 -0
- package/docs/layout.md +102 -0
- package/docs/link.md +93 -0
- package/docs/list.md +68 -0
- package/docs/modal.md +94 -0
- package/docs/motion.md +98 -0
- package/docs/notifications.md +188 -0
- package/docs/page-header.md +88 -0
- package/docs/pagination.md +71 -0
- package/docs/progress.md +136 -0
- package/docs/stat.md +92 -0
- package/docs/table.md +80 -0
- package/docs/tabs.md +71 -0
- package/docs/theming.md +55 -0
- package/docs/tokens.md +167 -0
- package/docs/tooltip.md +58 -0
- package/package.json +52 -4
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
|
7
|
+
per ADR-0001.
|
|
8
|
+
|
|
9
|
+
## [1.0.3] - 2026-10-09
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- [ADR-0006](docs/adr/0006-npm-registry-distribution.md), which records npm
|
|
14
|
+
(the public registry) as SpartaCSS's intended registry under the name
|
|
15
|
+
`@redspartanlabs/spartacss`, GitHub as the canonical home for source, tags
|
|
16
|
+
and releases, publication as a manual and irreversible step, and `1.0.2` as
|
|
17
|
+
a GitHub-only release. Git-tag installation remains supported.
|
|
18
|
+
- A "Publishing to npm" procedure in `RELEASING.md`: preflight checks for the
|
|
19
|
+
release tag and commit, name and version, rebuild and verification, package
|
|
20
|
+
inventory and integrity, registry target, authentication and access, and
|
|
21
|
+
version availability; publication of the verified tarball with
|
|
22
|
+
`--access public`; and verification of the published metadata, contents and
|
|
23
|
+
a clean consumer install.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- The README now names npm as the intended distribution channel and no longer
|
|
28
|
+
says registry selection is pending. It does not claim that any version is
|
|
29
|
+
available on npm.
|
|
30
|
+
- [ADR-0001](docs/adr/0001-package-architecture.md) and
|
|
31
|
+
[ADR-0004](docs/adr/0004-git-tag-artifact-distribution.md) gained
|
|
32
|
+
cross-references to ADR-0006. Their decisions are unchanged.
|
|
33
|
+
|
|
34
|
+
This release changes documentation and the release procedure only. No public
|
|
35
|
+
class selector, modifier, design token, markup contract or `exports` entry
|
|
36
|
+
point changed, no shipped CSS output changed, and the package whitelist is
|
|
37
|
+
unchanged — a non-breaking, patch-level change per ADR-0002. The package gains
|
|
38
|
+
ADR-0006 under `docs/adr/`.
|
|
39
|
+
|
|
40
|
+
## [1.0.2] - 2026-10-09
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- The package now includes its documentation. `package.json`'s `files` list
|
|
45
|
+
adds `docs/`, `CHANGELOG.md` and `RELEASING.md`, so the documentation
|
|
46
|
+
index, the component and foundation pages, the `docs/adr/` and
|
|
47
|
+
`docs/design/` material, and the files that the README and the
|
|
48
|
+
documentation link to are present in an installed package. No shipped CSS,
|
|
49
|
+
`exports` entry or package behavior changes. The `files` change was checked
|
|
50
|
+
against [ADR-0004](docs/adr/0004-git-tag-artifact-distribution.md)
|
|
51
|
+
Decisions 2 and 8: Decision 2 names the release contents as sitting
|
|
52
|
+
"alongside" the whitelisted files and does not make that list exclusive, and
|
|
53
|
+
Decision 8's `exports` map is unchanged.
|
|
54
|
+
- Reworded the sentence in
|
|
55
|
+
[ADR-0005](docs/adr/0005-canonical-ui-component-standard.md) that describes
|
|
56
|
+
how RedSpartan HQ presents SpartaCSS. The record remains `Proposed`.
|
|
57
|
+
|
|
58
|
+
## [1.0.1] - 2026-08-13
|
|
59
|
+
|
|
60
|
+
### Fixed
|
|
61
|
+
|
|
62
|
+
- Corrected the Git-tag distribution architecture: removed the `prepare`
|
|
63
|
+
lifecycle script so `npm install github:redspartanlabs/spartacss#<tag>`
|
|
64
|
+
no longer executes SpartaCSS's build on the consumer's machine. Release
|
|
65
|
+
tags now carry the prebuilt `dist/` artifacts directly (see
|
|
66
|
+
[ADR-0004](docs/adr/0004-git-tag-artifact-distribution.md)).
|
|
67
|
+
- Replaced POSIX-only build/clean scripts (`rm -rf`, `mkdir -p`, `cp`) with
|
|
68
|
+
cross-platform Node equivalents, and replaced the Bash-only
|
|
69
|
+
`verify-legacy-bundle.sh` with `scripts/verify-legacy-bundle.mjs`, so the
|
|
70
|
+
maintainer build works under Windows `cmd.exe`, not only POSIX shells.
|
|
71
|
+
- Added `.gitattributes` (`*.css text eol=lf`) so committed CSS artifacts
|
|
72
|
+
have stable line endings independent of the checkout platform's
|
|
73
|
+
`core.autocrlf` setting.
|
|
74
|
+
|
|
75
|
+
### Added
|
|
76
|
+
|
|
77
|
+
- `npm run verify:artifact` (`scripts/verify-release-artifact.mjs`), which
|
|
78
|
+
checks that every `package.json` `exports` entry resolves to a built,
|
|
79
|
+
non-empty `dist/` file — the mechanical release-artifact check
|
|
80
|
+
referenced by `RELEASING.md` and
|
|
81
|
+
[ADR-0004](docs/adr/0004-git-tag-artifact-distribution.md).
|
|
82
|
+
- `allowScripts` in `package.json`, explicitly approving
|
|
83
|
+
`lightningcss-cli@1.33.0`'s install script under npm 12's
|
|
84
|
+
script-approval policy, so the maintainer build's Lightning CSS binary
|
|
85
|
+
stages correctly.
|
|
86
|
+
|
|
87
|
+
This release changes SpartaCSS's build tooling and Git-tag distribution
|
|
88
|
+
mechanism only. No public class selector, modifier, design token,
|
|
89
|
+
markup contract, or `exports` entry point changed, and no shipped CSS
|
|
90
|
+
output changed — a non-breaking, patch-level change per ADR-0002.
|
|
91
|
+
|
|
92
|
+
## [1.0.0] - 2026-08-12
|
|
93
|
+
|
|
94
|
+
### Changed
|
|
95
|
+
|
|
96
|
+
- Replaced inherited Feather/Lucide geometry with original RedSpartan
|
|
97
|
+
construction, per [ADR-0003](docs/adr/0003-independent-iconography-system.md)
|
|
98
|
+
and [`docs/design/icon-standard.md`](docs/design/icon-standard.md), for
|
|
99
|
+
the 11 frozen foundational icons: `check`, `chevron-down`, `arrow-right`,
|
|
100
|
+
`sort-asc`, `sort-desc`, `x`, `plus`, `minus`, `search`, `settings`,
|
|
101
|
+
`user`. This includes the two consumers that source shared foundational
|
|
102
|
+
geometry outside the `.sp-icon-*` class system —
|
|
103
|
+
`--sp-icon-bg-check-white` (checkbox/list checkmark) and the local
|
|
104
|
+
`.sp-select` chevron in `sparta-form.css` — both now match their
|
|
105
|
+
respective frozen constructions.
|
|
106
|
+
- **Visible identity change:** `settings` changed from a gear glyph to a
|
|
107
|
+
sliders glyph (three horizontal tracks with filled thumbs) as part of
|
|
108
|
+
the frozen-geometry replacement above. Consumers styling or measuring
|
|
109
|
+
the `.sp-icon-settings` shape specifically, rather than treating it as
|
|
110
|
+
an opaque icon, should verify their usage against the new construction.
|
|
111
|
+
|
|
112
|
+
## [0.9.2] - 2026-08-07
|
|
113
|
+
|
|
114
|
+
### Fixed
|
|
115
|
+
|
|
116
|
+
- Restored `@layer components` placement for `src/core/sparta-utilities.css`,
|
|
117
|
+
the same correction applied to the icons and notifications modules in
|
|
118
|
+
`0.9.1`. This file was unlayered with no documented rationale; two of
|
|
119
|
+
its selectors (`.sp-navbar__toggle`, `.sp-alert__icon`) are the sole
|
|
120
|
+
source of that property for their component, making this the same
|
|
121
|
+
category of undocumented cascade-precedence gap ADR-0002 was written
|
|
122
|
+
to close. No selector, declaration, value, or ordering changed — only
|
|
123
|
+
cascade-layer membership was corrected.
|
|
124
|
+
- `package.json` `version` corrected to `0.9.2`. The `0.9.1` release was
|
|
125
|
+
published with `package.json` still reading `"version": "0.9.0"` — a
|
|
126
|
+
release-process metadata error (see the `0.9.1` entry below). This
|
|
127
|
+
release restores agreement between the package version, the CHANGELOG,
|
|
128
|
+
the git tag, and the GitHub release, per `RELEASING.md`.
|
|
129
|
+
|
|
130
|
+
### Added
|
|
131
|
+
|
|
132
|
+
- `RELEASING.md` — the operational release checklist, kept separate from
|
|
133
|
+
`docs/adr/0002-versioning-and-stability-policy.md` (which defines what
|
|
134
|
+
counts as a breaking change, not how to execute a release).
|
|
135
|
+
|
|
136
|
+
## [0.9.1] - 2026-08-07
|
|
137
|
+
|
|
138
|
+
### Fixed
|
|
139
|
+
|
|
140
|
+
- Restored `@layer components` placement for `sparta-icons.css` and
|
|
141
|
+
`sparta-notifications.css`. Both modules were unlayered from
|
|
142
|
+
extraction through `0.9.0` — an undocumented oversight, not a
|
|
143
|
+
deliberate design choice (the pre-extraction monolith's rules
|
|
144
|
+
originated inside `@layer components`; see `docs/extraction-plan.md`).
|
|
145
|
+
No selector, declaration, value, or ordering changed — only
|
|
146
|
+
cascade-layer membership was corrected.
|
|
147
|
+
- Added the missing `--sp-shadow-xl` design token. It was referenced by
|
|
148
|
+
the Confirm/Dialog component's `box-shadow` but never defined, which
|
|
149
|
+
silently dropped the shadow entirely. The token now resolves correctly
|
|
150
|
+
across the default, light, and dark themes.
|
|
151
|
+
|
|
152
|
+
### Added
|
|
153
|
+
|
|
154
|
+
- `Source:` footers to `docs/app-shell.md`, `docs/layout.md`, and
|
|
155
|
+
`docs/theming.md`, bringing them in line with the documentation
|
|
156
|
+
convention established in `0.8.0`/`0.9.0`.
|
|
157
|
+
- `docs/adr/0002-versioning-and-stability-policy.md` — defines what
|
|
158
|
+
constitutes a breaking change for SpartaCSS ahead of `1.0.0`, using
|
|
159
|
+
the `@layer` correction above as its founding precedent.
|
|
160
|
+
|
|
161
|
+
### Known issue
|
|
162
|
+
|
|
163
|
+
- This release was published with `package.json` still reading
|
|
164
|
+
`"version": "0.9.0"` instead of `0.9.1` — a release-process metadata
|
|
165
|
+
error, not a CSS API change. The published `v0.9.1` git tag and GitHub
|
|
166
|
+
release are unaffected and remain the authoritative historical
|
|
167
|
+
artifacts for this version; they have not been modified. The version
|
|
168
|
+
field was corrected in `0.9.2`.
|
|
169
|
+
|
|
170
|
+
## [0.9.0] - 2026-08-07
|
|
171
|
+
|
|
172
|
+
### Added
|
|
173
|
+
|
|
174
|
+
- Component and module documentation completing the coverage started in
|
|
175
|
+
`0.8.0`, using the established consumer-facing template and the
|
|
176
|
+
combine-when-shared-source-file convention:
|
|
177
|
+
- `docs/drawer.md` — including the `.sp-backdrop` relationship and the
|
|
178
|
+
consumer responsibility around toggling it alongside `--open`.
|
|
179
|
+
- `docs/dropdown.md`
|
|
180
|
+
- `docs/table.md`
|
|
181
|
+
- `docs/tabs.md`
|
|
182
|
+
- `docs/pagination.md`
|
|
183
|
+
- `docs/breadcrumbs.md`
|
|
184
|
+
- `docs/stat.md`
|
|
185
|
+
- `docs/avatar.md` (`.sp-avatar` + `.sp-avatar-group`)
|
|
186
|
+
- `docs/progress.md` (Spinner, Progress Bar, and Skeleton)
|
|
187
|
+
- `docs/list.md`
|
|
188
|
+
- `docs/link.md`
|
|
189
|
+
- `docs/divider.md`
|
|
190
|
+
- `docs/kbd.md`
|
|
191
|
+
- `docs/empty-state.md`
|
|
192
|
+
- `docs/code.md` (inline code, code blocks, and syntax tokens)
|
|
193
|
+
- `docs/page-header.md`
|
|
194
|
+
- `docs/icons.md`
|
|
195
|
+
- `docs/notifications.md` (Toast, Alert Banner, and Confirm/Dialog)
|
|
196
|
+
- `--sp-ease-in` and `--sp-ease-back` in `sparta-tokens.css` — previously
|
|
197
|
+
referenced by the notifications module's Toast exit, Dialog overlay
|
|
198
|
+
exit, and Dialog entrance animations but never defined, which silently
|
|
199
|
+
dropped all three animations. Purely additive; no existing token
|
|
200
|
+
changed.
|
|
201
|
+
- `.sp-modal--closing` support for the supported Modal API
|
|
202
|
+
(`.sp-modal__overlay` / `.sp-modal__content`), mirroring the exit
|
|
203
|
+
transition the frozen legacy API (`.sp-modal-backdrop` /
|
|
204
|
+
`.sp-modal__dialog`) already had — closing a parity gap named at
|
|
205
|
+
`0.6.0`. Legacy behavior is unchanged.
|
|
206
|
+
|
|
207
|
+
### Changed
|
|
208
|
+
|
|
209
|
+
- `docs/tooltip.md`, `docs/accordion.md`, `docs/modal.md` now link to
|
|
210
|
+
`docs/motion.md` and `docs/accessibility.md` for reduced-motion and
|
|
211
|
+
CSS-vs-JavaScript responsibility guidance instead of only stating it
|
|
212
|
+
inline.
|
|
213
|
+
- `docs/modal.md` updated to reflect that `.sp-modal--closing` is now
|
|
214
|
+
supported by both the current and legacy Modal APIs.
|
|
215
|
+
|
|
216
|
+
## [0.8.0] - 2026-08-06
|
|
217
|
+
|
|
218
|
+
### Added
|
|
219
|
+
|
|
220
|
+
- Foundation documentation:
|
|
221
|
+
- `docs/tokens.md` — token naming conventions, the color system,
|
|
222
|
+
typography tokens, the spacing scale, and reference-vs-override
|
|
223
|
+
guidance.
|
|
224
|
+
- `docs/motion.md` — transition tokens, the animation layer, and the
|
|
225
|
+
`prefers-reduced-motion` contract.
|
|
226
|
+
- `docs/accessibility.md` — CSS vs. JavaScript responsibility, keyboard
|
|
227
|
+
and focus expectations, ARIA responsibility boundaries, and semantic
|
|
228
|
+
HTML expectations.
|
|
229
|
+
- Component documentation, using the established consumer-facing template
|
|
230
|
+
(Purpose, Usage, Class API, Variants, State modifiers, Accessibility,
|
|
231
|
+
Source reference):
|
|
232
|
+
- `docs/button.md`
|
|
233
|
+
- `docs/forms.md`
|
|
234
|
+
- `docs/card.md`
|
|
235
|
+
- `docs/badge.md`
|
|
236
|
+
- `docs/alert.md`
|
|
237
|
+
|
|
238
|
+
### Changed
|
|
239
|
+
|
|
240
|
+
- Documentation is now organized around a clear separation of concerns:
|
|
241
|
+
repository Markdown as the source of truth, foundation guidance (tokens,
|
|
242
|
+
motion, accessibility) separated from component API usage, and
|
|
243
|
+
accessibility responsibilities documented centrally rather than repeated
|
|
244
|
+
per component.
|
|
245
|
+
|
|
246
|
+
## [0.7.0] - 2026-08-04
|
|
247
|
+
|
|
248
|
+
### Changed
|
|
249
|
+
|
|
250
|
+
- Package maturity work: `package.json` `version` bumped `0.2.0` → `0.7.0`.
|
|
251
|
+
- `package.json` `description` replaced with a framework-agnostic tagline:
|
|
252
|
+
"A framework-agnostic CSS design system built for systems that must
|
|
253
|
+
last."
|
|
254
|
+
- Removed `"private": true` from `package.json` — SpartaCSS is now intended
|
|
255
|
+
for public npm distribution rather than being flagged as an internal
|
|
256
|
+
package.
|
|
257
|
+
|
|
258
|
+
### Added
|
|
259
|
+
|
|
260
|
+
- `homepage` field in `package.json`, pointing at the repository's README.
|
|
261
|
+
- `keywords` field in `package.json` (`css`, `design-system`,
|
|
262
|
+
`framework-agnostic`, `frontend`, `web-development`) for registry
|
|
263
|
+
discoverability.
|
|
264
|
+
|
|
265
|
+
## [0.6.0] - 2026-08-02
|
|
266
|
+
|
|
267
|
+
### Added
|
|
268
|
+
|
|
269
|
+
- `--sp-bg-inverse` in `sparta-tokens.css` — a theme-invariant surface
|
|
270
|
+
token (`:root` only, not overridden per theme), mirroring the existing
|
|
271
|
+
theme-invariant `--sp-text-inverse`. Needed because every other
|
|
272
|
+
`--sp-bg-*` token flips per theme, but inverse-context UI (Tooltip's
|
|
273
|
+
surface) needs a background that stays dark regardless of the active
|
|
274
|
+
theme so its `--sp-text-inverse` text stays legible. Verified no
|
|
275
|
+
existing token already covered this before adding it.
|
|
276
|
+
- `docs/tooltip.md`, `docs/accordion.md`, `docs/modal.md` — the first
|
|
277
|
+
usage documentation for these three components, each naming the
|
|
278
|
+
supported and documented selector set and pointing at its frozen
|
|
279
|
+
legacy counterpart.
|
|
280
|
+
|
|
281
|
+
### Changed
|
|
282
|
+
|
|
283
|
+
- `.sp-tooltip__text` (`sparta-tooltip.css`) now sources its background
|
|
284
|
+
from `--sp-bg-inverse` instead of a hardcoded `#111111` literal.
|
|
285
|
+
Value-for-value substitution only — no visual change in either theme,
|
|
286
|
+
since the supported tooltip API never varied by theme to begin with.
|
|
287
|
+
- `.sp-tooltip__text` now respects `prefers-reduced-motion: reduce`,
|
|
288
|
+
disabling its show/hide transition — ported from the legacy
|
|
289
|
+
`[data-tooltip]` implementation, which already had this and the
|
|
290
|
+
supported one didn't.
|
|
291
|
+
- `.sp-tooltip`/`.sp-tooltip__text`, `.sp-accordion__header`/
|
|
292
|
+
`.sp-accordion__icon`, and `.sp-modal__overlay`/`.sp-modal__content`
|
|
293
|
+
are now explicitly designated the supported, documented API for
|
|
294
|
+
Tooltip, Accordion, and Modal respectively. Their legacy counterparts
|
|
295
|
+
(`[data-tooltip]`/`.sp-tooltip--visible`, `.sp-accordion__trigger`/
|
|
296
|
+
`.sp-accordion__content--animated`, `.sp-modal-backdrop`/
|
|
297
|
+
`.sp-modal__dialog`) are now explicitly marked frozen in source
|
|
298
|
+
comments — same convention as `.sp-flex`/atomic utilities since
|
|
299
|
+
`0.4.0`. This closes debt named at extraction (see `0.2.0`'s
|
|
300
|
+
"Unchanged (verified)" section and ADR-0001) but never resolved.
|
|
301
|
+
|
|
302
|
+
### Unchanged (verified)
|
|
303
|
+
|
|
304
|
+
- No legacy selector was removed, renamed, or had its computed output
|
|
305
|
+
changed. `[data-tooltip]`, `.sp-tooltip--visible`,
|
|
306
|
+
`.sp-accordion__trigger`, `.sp-accordion__content--animated`,
|
|
307
|
+
`.sp-modal-backdrop`, and `.sp-modal__dialog` render identically to
|
|
308
|
+
`0.5.0` — confirmed via baseline diff showing zero lines touched in
|
|
309
|
+
any of their rules.
|
|
310
|
+
- No new components. No `.sp-sidebar` work — still deferred per `0.5.0`.
|
|
311
|
+
- Modal's legacy-only `--closing` exit-transition state was not ported
|
|
312
|
+
to the supported and documented API — a real feature gap, but out of
|
|
313
|
+
scope for this consolidation release; tracked as future work.
|
|
314
|
+
- Accordion's legacy `::after`-mask chevron approach was not ported to
|
|
315
|
+
the supported and documented API — a design choice (DOM child vs.
|
|
316
|
+
pseudo-element icon), not a bug.
|
|
317
|
+
- No JavaScript shipped.
|
|
318
|
+
|
|
319
|
+
## [0.5.0] - 2026-07-30
|
|
320
|
+
|
|
321
|
+
### Added
|
|
322
|
+
|
|
323
|
+
- `.sp-navbar` component (`src/components/sparta-navbar.css`) —
|
|
324
|
+
`__brand`/`__links`/`__link`/`__actions`/`__toggle` slots, `--open` state
|
|
325
|
+
modifier for a mobile-collapsed menu below the existing `768px`
|
|
326
|
+
breakpoint. Resolves the dangling `.sp-navbar__toggle` icon-color rules
|
|
327
|
+
(`sparta-utilities.css`, `sparta-icons.css`) and the `.sp-navbar` print
|
|
328
|
+
rule (`sparta-accessibility.css`) that have existed with no component
|
|
329
|
+
behind them since before the modular architecture split.
|
|
330
|
+
- `.sp-app-shell` pattern (`src/patterns/sparta-app-shell.css`) — a thin
|
|
331
|
+
page-level wrapper composing Navbar with the existing `.sp-container`/
|
|
332
|
+
`.sp-stack` primitives. Two rules only (`.sp-app-shell`,
|
|
333
|
+
`.sp-app-shell__main`); the composition itself is documented, not
|
|
334
|
+
reimplemented as new layout CSS.
|
|
335
|
+
- `docs/app-shell.md` — Navbar API reference, the `--open` state contract
|
|
336
|
+
(no JS shipped, consumer-toggled, same convention as `.sp-modal--open`/
|
|
337
|
+
`.sp-accordion__item--open`), and the App Shell composition guide with
|
|
338
|
+
starter markup.
|
|
339
|
+
|
|
340
|
+
### Unchanged (verified)
|
|
341
|
+
|
|
342
|
+
- No Sidebar component or sidebar-based shell was added. The `.sp-sidebar`
|
|
343
|
+
reference in `sparta-accessibility.css`'s print rule remains
|
|
344
|
+
unimplemented — deferred, not resolved by this release.
|
|
345
|
+
- No new utility classes; `.sp-container`/`.sp-stack`/`.sp-cluster`/
|
|
346
|
+
`.sp-grid` and the frozen `.sp-flex`/atomic utility layer are unchanged.
|
|
347
|
+
- No JavaScript shipped.
|
|
348
|
+
|
|
349
|
+
## [0.4.0] - 2026-07-29
|
|
350
|
+
|
|
351
|
+
### Added
|
|
352
|
+
|
|
353
|
+
- `.sp-cluster` in `sparta-layout.css` — a wrapping horizontal composition
|
|
354
|
+
primitive (`--center`, `--sm`/`--lg`/`--xl` gap, `--justify-between`/
|
|
355
|
+
`--justify-end`). No default cross-axis alignment: centering is opt-in via
|
|
356
|
+
`--center` rather than assumed.
|
|
357
|
+
- `.sp-grid--auto` — an intrinsically responsive grid mode
|
|
358
|
+
(`repeat(auto-fit, minmax(15rem, 1fr))`) requiring no breakpoint, alongside
|
|
359
|
+
the existing explicit `--cols-N` variants.
|
|
360
|
+
- `--sp-container-base`/`--sp-container-sm`/`--sp-container-md`/
|
|
361
|
+
`--sp-container-lg` tokens in `sparta-tokens.css`, plus a comment
|
|
362
|
+
documenting the two canonical breakpoints (`640px`, `768px`) already in
|
|
363
|
+
use across `sparta-layout.css`'s media queries.
|
|
364
|
+
- `docs/layout.md` — documents the four supported layout primitives
|
|
365
|
+
(`.sp-container`, `.sp-stack`, `.sp-cluster`, `.sp-grid`), the breakpoint
|
|
366
|
+
scale, and the legacy status of `.sp-flex`/atomic utilities.
|
|
367
|
+
|
|
368
|
+
### Changed
|
|
369
|
+
|
|
370
|
+
- `.sp-container` and its `--sm`/`--md`/`--lg` modifiers now source their
|
|
371
|
+
max-width from the new container tokens instead of inline pixel literals.
|
|
372
|
+
Value-for-value substitution only — no visual change.
|
|
373
|
+
- `.sp-flex` and the atomic spacing/sizing/display utility classes
|
|
374
|
+
(`.sp-p-*`, `.sp-m-*`, `.sp-w-*`, `.sp-h-*`, display helpers, etc.) are now
|
|
375
|
+
explicitly documented as frozen/legacy in both `sparta-layout.css` and
|
|
376
|
+
`docs/layout.md`. Not removed, not modified — retained for backward
|
|
377
|
+
compatibility, but will not receive new variants going forward.
|
|
378
|
+
|
|
379
|
+
### Unchanged (verified)
|
|
380
|
+
|
|
381
|
+
- `.sp-container`, `.sp-stack`, `.sp-flex`, and every atomic utility class
|
|
382
|
+
render identically to `0.3.0`. This release is additive curation, not a
|
|
383
|
+
rewrite — no existing selector was renamed or removed.
|
|
384
|
+
|
|
385
|
+
## [0.3.0] - 2026-07-29
|
|
386
|
+
|
|
387
|
+
### Added
|
|
388
|
+
|
|
389
|
+
- `data-theme="dark"` / `.sp-dark` — explicit dark-mode override in
|
|
390
|
+
`sparta-tokens.css`, for consumers who want to state their theme choice
|
|
391
|
+
explicitly rather than relying on the implicit default. Functionally
|
|
392
|
+
equivalent to the default; added purely for API symmetry with the existing
|
|
393
|
+
`data-theme="light"` / `.sp-light` opt-in.
|
|
394
|
+
- `.sp-field--warning` (and `.sp-field__warning`) in `sparta-form.css` — a
|
|
395
|
+
third field-validation state alongside the existing `--error`/`--success`
|
|
396
|
+
modifiers, giving forms a complete error/warning/success trio. Modeled
|
|
397
|
+
structurally on `.sp-field--error`.
|
|
398
|
+
- `docs/theming.md` — documents the theming precedence contract (default,
|
|
399
|
+
explicit dark, explicit light) and which tokens are theme-dependent.
|
|
400
|
+
|
|
401
|
+
### Unchanged (verified)
|
|
402
|
+
|
|
403
|
+
- Dark remains the unconditional default theme when no explicit override is
|
|
404
|
+
set. SpartaCSS does not read `prefers-color-scheme` and will not switch
|
|
405
|
+
themes based on OS/browser preference — this was evaluated during
|
|
406
|
+
development and deliberately rejected to preserve SpartaCSS's dark-first
|
|
407
|
+
product direction. Existing consumers see no behavior change.
|
|
408
|
+
|
|
409
|
+
## [0.2.0] - 2026-07-28
|
|
410
|
+
|
|
411
|
+
### Added
|
|
412
|
+
|
|
413
|
+
- Modular `src/` architecture: the single-file `spartacss.css` source has
|
|
414
|
+
been split into `core/` (tokens, reset, base, layout, utilities,
|
|
415
|
+
animations, accessibility), `components/`, `modules/` (`overlay/`,
|
|
416
|
+
`data/`, `docs/`, `feedback/`, `icons/`), and `patterns/` directories.
|
|
417
|
+
- New `sparta.css` entry point — core only (tokens, reset, base, layout,
|
|
418
|
+
utilities), for consumers who only want the foundation without any
|
|
419
|
+
components.
|
|
420
|
+
- New `sparta-all.css` entry point — the full framework in one file,
|
|
421
|
+
including the icon and notifications modules that were previously only
|
|
422
|
+
available as separate imports.
|
|
423
|
+
- Corresponding new `package.json` exports: `./sparta.css`,
|
|
424
|
+
`./sparta.min.css`, `./sparta-all.css`, `./sparta-all.min.css`.
|
|
425
|
+
- `.github/workflows/ci.yml` — GitHub Actions workflow that runs on pushes
|
|
426
|
+
and pull requests targeting `main`, installing dependencies and running
|
|
427
|
+
`npm run build`. Node version is loaded from `.nvmrc` (via
|
|
428
|
+
`node-version-file`) rather than hardcoded, so CI and local development
|
|
429
|
+
can't drift apart.
|
|
430
|
+
- `.nvmrc` pinning local/CI Node version to 22.
|
|
431
|
+
- Legacy bundle regression verification: `npm run verify`
|
|
432
|
+
(`scripts/verify-legacy-bundle.sh`) diffs the freshly built
|
|
433
|
+
`dist/spartacss.css` against a committed baseline snapshot
|
|
434
|
+
(`test/baseline/spartacss.css`) and fails the build if the legacy default
|
|
435
|
+
bundle's output has drifted. Wired into CI as a step that runs after
|
|
436
|
+
`npm run build`, so any unintentional change to the legacy bundle's
|
|
437
|
+
contents fails CI rather than shipping silently.
|
|
438
|
+
|
|
439
|
+
### Changed
|
|
440
|
+
|
|
441
|
+
- Build pipeline now bundles each entry point (`sparta.css`, `spartacss.css`,
|
|
442
|
+
`sparta-all.css`) independently via Lightning CSS's `--bundle` mode,
|
|
443
|
+
resolving each file's own `@import` graph, rather than copying a single
|
|
444
|
+
source file directly into `dist/`.
|
|
445
|
+
- `spartacss.css` is now an explicit source entry point in `src/` (importing
|
|
446
|
+
`sparta.css` plus components/modules/patterns, excluding icons and
|
|
447
|
+
notifications) rather than the single monolithic source file it was
|
|
448
|
+
before.
|
|
449
|
+
|
|
450
|
+
### Unchanged (verified)
|
|
451
|
+
|
|
452
|
+
- `dist/spartacss.css` — the existing default (`.` / `./spartacss.css`)
|
|
453
|
+
export — was verified content-equivalent (identical normalized rule set)
|
|
454
|
+
to its pre-refactor output. No public class was renamed, no component
|
|
455
|
+
behavior changed, and the legacy bundle's scope (core + components +
|
|
456
|
+
modules excluding icons/notifications + patterns) is unchanged.
|
|
457
|
+
- `dist/sparta-icons.css` and `dist/sparta-notifications.css` remain
|
|
458
|
+
byte-identical plain copies of their source files.
|
|
459
|
+
- All existing duplicate implementations preserved as-is (e.g. two tooltip
|
|
460
|
+
APIs, two accordion-trigger APIs) — consolidating them is deliberately
|
|
461
|
+
out of scope for this release; tracked as future work.
|
|
462
|
+
|
|
463
|
+
## [0.1.0] - 2026-07-23
|
|
464
|
+
|
|
465
|
+
### Added
|
|
466
|
+
|
|
467
|
+
- Initial extraction of SpartaCSS as an independent package: core stylesheet
|
|
468
|
+
(tokens, reset, layout, components), icon system (`sparta-icons.css`), and
|
|
469
|
+
notifications module (`sparta-notifications.css`).
|
|
470
|
+
- `package.json` with Lightning CSS build pipeline (`npm run build`
|
|
471
|
+
producing unminified and minified variants of each file into `dist/`).
|
|
472
|
+
- Public package exports for core, icon, and notifications stylesheets
|
|
473
|
+
(unminified and minified).
|
|
474
|
+
|
|
475
|
+
### Fixed
|
|
476
|
+
|
|
477
|
+
- Resolved Toast implementation duplication between core and the
|
|
478
|
+
notifications module; the notifications module's Toast is the canonical
|
|
479
|
+
implementation, with no public class renamed and no behavior changed.
|
|
480
|
+
- Resolved `.sp-icon` "ICON SLOTS" duplication between core and the icon
|
|
481
|
+
system; ownership confirmed as belonging to the icon system, duplicate
|
|
482
|
+
block removed from core.
|
|
483
|
+
|
|
484
|
+
[Unreleased]: https://github.com/redspartanlabs/spartacss/compare/v1.0.3...HEAD
|
|
485
|
+
[1.0.3]: https://github.com/redspartanlabs/spartacss/compare/v1.0.2...v1.0.3
|
|
486
|
+
[1.0.2]: https://github.com/redspartanlabs/spartacss/compare/v1.0.1...v1.0.2
|
|
487
|
+
[1.0.1]: https://github.com/redspartanlabs/spartacss/compare/v1.0.0...v1.0.1
|
|
488
|
+
[1.0.0]: https://github.com/redspartanlabs/spartacss/compare/v0.9.2...v1.0.0
|
|
489
|
+
[0.9.2]: https://github.com/redspartanlabs/spartacss/compare/v0.9.1...v0.9.2
|
|
490
|
+
[0.9.1]: https://github.com/redspartanlabs/spartacss/compare/v0.9.0...v0.9.1
|
|
491
|
+
[0.9.0]: https://github.com/redspartanlabs/spartacss/compare/v0.8.0...v0.9.0
|
|
492
|
+
[0.8.0]: https://github.com/redspartanlabs/spartacss/compare/v0.7.0...v0.8.0
|
|
493
|
+
[0.7.0]: https://github.com/redspartanlabs/spartacss/compare/v0.6.0...v0.7.0
|
|
494
|
+
[0.6.0]: https://github.com/redspartanlabs/spartacss/compare/v0.5.0...v0.6.0
|
|
495
|
+
[0.5.0]: https://github.com/redspartanlabs/spartacss/compare/v0.4.0...v0.5.0
|
|
496
|
+
[0.4.0]: https://github.com/redspartanlabs/spartacss/compare/v0.3.0...v0.4.0
|
|
497
|
+
[0.3.0]: https://github.com/redspartanlabs/spartacss/compare/v0.2.0...v0.3.0
|
|
498
|
+
[0.2.0]: https://github.com/redspartanlabs/spartacss/compare/v0.1.0...v0.2.0
|
|
499
|
+
[0.1.0]: https://github.com/redspartanlabs/spartacss/releases/tag/v0.1.0
|