Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
e4bcac8
adopt park-ui architecture for theme colors, with generation from fig…
lunelson Dec 17, 2025
595326e
clean up the color generation script, pass 1
lunelson Jan 12, 2026
e691f5a
convert color generation to use Zod
lunelson Jan 12, 2026
3253764
move files around
lunelson Jan 12, 2026
17f92a3
ladle initial setup
lunelson Jan 12, 2026
1d6c39a
working ladle color swatches output
lunelson Jan 12, 2026
d2dc167
add rust compile pkg dir ignore to workspaces def in root package
lunelson Jan 12, 2026
381ebca
format fixes, and untrack styled-system
lunelson Jan 12, 2026
b854e37
align vite versions
lunelson Jan 12, 2026
69a15d2
get semantic colors in the export; fix codegen pkg script
lunelson Jan 12, 2026
418e9bf
add semantic color file generation to the script
lunelson Jan 12, 2026
8d07904
get semantic colors actually connected
lunelson Jan 12, 2026
4777ddd
snip ds-helpers out of chain; try fixing the variable references in d…
lunelson Jan 12, 2026
6b524b3
add more variables to the figma export
lunelson Jan 12, 2026
19573fa
lint and type fixes
lunelson Jan 12, 2026
6cf8c22
expand ladle config w util components, hooks and tokened styles
lunelson Jan 12, 2026
bc79370
align w library pattern from tsdown
lunelson Jan 13, 2026
da4dd4e
add codegen for other tokens
lunelson Jan 13, 2026
4f34ec9
add stories for the new tokens
lunelson Jan 13, 2026
81dd8b8
add tests and tighten zod schemas
lunelson Jan 13, 2026
ae1dfd0
create turbo config
lunelson Jan 13, 2026
f2f6677
fix the type inference and strictness of tokens
lunelson Jan 13, 2026
e661f00
extend strictness to ds-components; fix for current naming
lunelson Jan 13, 2026
c521c38
fix color assignment in ladle and restrict core colors story to core
lunelson Jan 13, 2026
fb7c15f
keep description field from tokens; convert default props to DEFAULT
lunelson Jan 13, 2026
9dcebee
fixups
lunelson Jan 13, 2026
b6553c6
add vercel config and playwright snapshot testing
lunelson Jan 14, 2026
d793cc7
lint fixes, on everything except petrinaut
lunelson Jan 14, 2026
2019c6d
reinstate ds-helpers; move ladle stuff from ds-theme to ds-helpers
lunelson Jan 14, 2026
58851c2
align configuration files with tsdown patterns
lunelson Jan 14, 2026
e2823d5
mostly fix token name errors in ds-components and petrinaut
lunelson Jan 14, 2026
336f02d
capture panda's preflight styles to align ladle w production
lunelson Jan 15, 2026
1a1a5c5
fix up pkg and turbo.json configs in all ds-*
lunelson Jan 15, 2026
6ab8907
make ds-* tsconfigs _slightly_ less strict
lunelson Jan 15, 2026
436833c
fix the dark/light switching again
lunelson Jan 15, 2026
47b2e0d
fix the codegen vs format loop problem for now
lunelson Jan 15, 2026
ed4505b
add AGENTS.md to each of the 3 packages
lunelson Jan 15, 2026
9319fd3
fix ts path mapping of hickory package
lunelson Jan 15, 2026
85bf6d0
fix vercel config
lunelson Jan 15, 2026
a3722d2
fix build chain, up to ds-components
lunelson Jan 15, 2026
99352d4
fix ds- package resolutions by using workspace refs; use correct refs
lunelson Jan 15, 2026
f5d33cf
fix pkg constraints
lunelson Jan 15, 2026
31d9f02
fix ds-helpers testing
lunelson Jan 15, 2026
7e7f44b
review fixes
lunelson Jan 15, 2026
6da1e2e
pkg fixes: patch refractive version, re-add panda dev
lunelson Jan 15, 2026
cb77e6f
format fixes
lunelson Jan 15, 2026
e81828d
maybe fix biome invocation
lunelson Jan 15, 2026
0a819bc
fix ds-components exports of main vs index
lunelson Jan 15, 2026
29b5de0
remove that build command
lunelson Jan 15, 2026
ac5d5a2
change ds-theme codegen to use the *.gen.* convention
lunelson Jan 16, 2026
5d54849
comment re panda config questions
lunelson Jan 16, 2026
c40a570
various self-review related trimmings and fixes
lunelson Jan 16, 2026
cdeff35
experimental fix for refractive CI errors
lunelson Jan 16, 2026
d89e871
changesets entry
lunelson Jan 16, 2026
d35783f
untrack build outputs
lunelson Jan 16, 2026
344cf54
removed the previous dependsOn: [] override in ds-components turbo
lunelson Jan 16, 2026
758275c
fixes for lint dependency failures
lunelson Jan 16, 2026
ee61bad
H-6024: Update design system repo config from #8191 (#8277)
CiaranMn Jan 20, 2026
311d857
set the ds-components compile and export config to send both barrel a…
lunelson Jan 20, 2026
36181cc
rename ds-theme and ds-component test:* scripts, so they run as part …
lunelson Jan 20, 2026
c728cdc
fix snapshot file naming
lunelson Jan 20, 2026
70ab98f
bugbot fixes
lunelson Jan 20, 2026
06bb42a
yarn deduplicate
lunelson Jan 20, 2026
fb8fe2b
revert snapshot test naming; the solution for CI is too complicated r…
lunelson Jan 20, 2026
d706e34
fix constraints
lunelson Jan 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .markdownlint-cli2.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"globs": ["*.md", "**/*.md", "**/*.mdc"],
"ignores": [
"**/LICENSE*.md",
"**/AGENTS*.md",
"node_modules/**",
"target/**",
"**/_temp/**",
Expand Down
3 changes: 3 additions & 0 deletions biome.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@
// see: https://github.com/biomejs/biome/issues/2312
"**/_temp/**",
"**/.mastra/**",
"**/.build/**",
"**/styled-system/**",
"**/__snapshots__/**",
"@local/graph/api/openapi/**",
"@local/graph/client/typescript/*.ts",
"**/*.snap",
Expand Down
5 changes: 5 additions & 0 deletions libs/@hashintel/ds-components/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
node_modules
dist
*.log
.DS_Store

# Used for Figma access token
.env

Expand Down
220 changes: 220 additions & 0 deletions libs/@hashintel/ds-components/.storybook/index.css
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added panda's reset styles here because I'm conservatively going with preflight:false on the config, due to not being 100% sure yet, what impact the preflight option could have on consumers

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The impact will be that reset styles are applied to global elements (interfering with global styling) unless they are scoped to a specific class, as we do in Petrinaut.

But surely preflight: false means that the components will not display as intended, and that the Storybook is in fact not a faithful representation of what they look like, since it is adding additional styling to them?

Either:

  1. the reset is required for the components to appear as they should, in which case we can either (a) scope the reset to a sufficiently unique class that we apply to a wrapper around all of them, or (b) just apply the reset and potentially mess with consumers, or
  2. the reset is not required, in which case we don't need it here

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can deal with this in follow-up. I'm maybe 70% confident I'm right above but it can easily be verified by building the library and looking at the generated CSS file

Original file line number Diff line number Diff line change
@@ -1 +1,221 @@
@layer reset, base, tokens, recipes, utilities;

/* panda's preflight (reset) styles, since we set preflight:false */
@layer reset {
html,
:host {
--font-fallback:
ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
"Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
"Segoe UI Symbol", "Noto Color Emoji";
line-height: 1.5;
-webkit-text-size-adjust: 100%;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-moz-tab-size: 4;
tab-size: 4;
font-family: var(--global-font-body, var(--font-fallback));
-webkit-tap-highlight-color: transparent;
}

*,
::before,
::after,
::backdrop,
::file-selector-button {
margin: 0px;
padding: 0px;
border-width: 0px;
border-style: solid;
border-color: var(--global-color-border, currentcolor);
box-sizing: border-box;
}

hr {
color: inherit;
height: 0px;
border-top-width: 1px;
}

body {
line-height: inherit;
height: 100%;
}

img {
border-style: none;
}

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
display: block;
vertical-align: middle;
}

img,
video {
max-width: 100%;
height: auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
text-wrap: balance;
font-size: inherit;
font-weight: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
overflow-wrap: break-word;
}

ol,
ul,
menu {
list-style: none;
}

button,
input:where([type="button"], [type="reset"], [type="submit"]),
::file-selector-button {
appearance: button;
-webkit-appearance: button;
}

button,
input,
optgroup,
select,
textarea,
::file-selector-button {
font: inherit;
background: transparent;
font-feature-settings: inherit;
font-variation-settings: inherit;
letter-spacing: inherit;
color: inherit;
}

::placeholder {
--placeholder-fallback: rgba(0, 0, 0, 0.5);
opacity: 1;
color: var(--global-color-placeholder, var(--placeholder-fallback));
}

@supports (not (-webkit-appearance: -apple-pay-button)) or
(contain-intrinsic-size: 1px) {
::placeholder {
--placeholder-fallback: color-mix(in oklab, currentcolor 50%, transparent);
}
}

::selection {
background-color: var(--global-color-selection, rgba(0, 115, 255, 0.3));
}

textarea {
resize: vertical;
}

table {
border-color: inherit;
text-indent: 0px;
border-collapse: collapse;
}

summary {
display: list-item;
}

small {
font-size: 80%;
}

sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}

sub {
bottom: -0.25em;
}

sup {
top: -0.5em;
}

dialog {
padding: 0px;
}

a {
text-decoration: inherit;
color: inherit;
}

abbr:where([title]) {
text-decoration: underline dotted;
}

b,
strong {
font-weight: bolder;
}

code,
kbd,
samp,
pre {
--font-mono-fallback: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
"Liberation Mono", "Courier New";
font-family: var(--global-font-mono, var(--font-mono-fallback));
font-size: 1em;
font-feature-settings: normal;
font-variation-settings: normal;
}

progress {
vertical-align: baseline;
}

::-webkit-search-decoration,
::-webkit-search-cancel-button {
-webkit-appearance: none;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
height: auto;
}

:-moz-ui-invalid {
box-shadow: none;
}

:-moz-focusring {
outline: auto;
}

[hidden]:where(:not([hidden="until-found"])) {
display: none !important;
}
}
Loading
Loading