| 2026-09-25 |
Add Mono color theme
...
Plain black with minimal accents: true-gray neutrals, white
primary, a single restrained amber accent, and barely tinted
status colors. Also widen the demo theme switcher regex so
returning from Ember or Mono restores the default stylesheet.
Eugene Sukhodolskiy
committed
16 days ago
|
| 2026-09-24 |
Add static demo section sync check
...
scripts/check-demo-sections.mjs verifies without a server that
demo/index.html and demo/vue.html include the identical section
sequence, that every included partial exists in both variants, and
that no partial is orphaned. Wired into release:check as
test:demo-sections.
Eugene Sukhodolskiy
committed
16 days ago
|
Extract useOverlayTransition composable
...
Encode the CLAUDE.md overlay transition contract (hidden state class on
first render, visible class on nextTick + rAF, unmount after the closing
transition) as a composable; GnModal and GnDrawer now share it.
Composable is unit-tested; demo sync stays at 0 differences.
Eugene Sukhodolskiy
committed
16 days ago
|
Add Vue adapter behavior contract tests
...
- vitest + jsdom + @vue/test-utils; 38 tests over utils, GnModal,
GnToastProvider, GnFileUpload, GnCombobox covering the CLAUDE.md
behavior contracts (focus trap, a-hide/a-show transition order,
single-toast replacement, object URL cleanup, combobox ARIA/keyboard)
- wire test:unit into release:check
- fix GnModal never opening when mounted with open=true (watcher had
no immediate flag; demo only ever toggles open after mount)
Eugene Sukhodolskiy
committed
16 days ago
|
Fix v0.4.0 review findings and demo asset paths
...
- Restore visible hover feedback on radio/checkbox (background $color-grey)
- Drop dead checked/hover border-color rules; guard checked with :not(:disabled)
- Tokenize radio border as $border-width-choice and add $range-thumb-size
so the choice-size bump no longer widens range slider thumbs
- Add cursor: pointer to switch wrapper
- Revert escaped doc snippets to absolute URLs (relative sweep was
teaching fake ./routes in documentation samples)
- Add compare-heights.js demo sync check with CHROME_PATH fallback;
ignore screenshots/
Eugene Sukhodolskiy
committed
16 days ago
|
| 2026-05-27 |
v0.3.0 — GnUserCard, NavigationShell footer slot, Vue demo partials
...
Features:
- Add GnUserCard Vue component with compact and full variants
- Add GnNavigationShell #footer slot for custom footer content
- Add profile footer demo in navigation-shell section
- Split demo/vue.html into 27 partials under demo/partials/vue/
- Fix toast open animation (nextTick + requestAnimationFrame pattern)
Style:
- Add .user-card and .user-card-compact to _cards.scss
- Add .profile-identity to _navigation-shell.scss
Docs:
- Add demo synchronization rules to CLAUDE.md
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 27 May
|
| 2026-05-26 |
Fix Vue demo visual issues and expand component showcase
...
- _forms.scss: rename .checkbox to .switch, create proper .checkbox
for checkbox (square) vs switch (slider) differentiation
- GnSwitch.js: create dedicated switch component using .switch class
- _forms.scss: add .radio-group with flex-wrap gap for radio layouts
- GnRadioGroup.js: add radio-group class to container
- _cards.scss: fix .card-horizontal .card-media sizing with
max-height, aspect-ratio, and align-self: start
- demo/vue.html: fix steps data (label → title)
- demo/vue.html: fix definition list data (definition → description)
- demo/vue.html: add Accordion, InputGroup demos
- demo/vue.html: add NavigationShell import (component registered)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 26 May
|
Fix Vue demo: dark theme, label color, expanded component showcase
...
- demo/vue.html: replace broken CSS custom properties with real kit colors
(body background #16161E, text #C0CAF5)
- demo/vue.html: update Vue CDN to 3.5.13
- demo/vue.html: expand demo to show 30+ components including
Drawer, ConfirmDialog, Navigation, Progress, Timeline, Data Display,
Identity, Chips, Toolbar, Overlays, EmptyState, Skeleton, Toasts
- _forms.scss: add color: $color-text-light to .label so labels are
readable on dark backgrounds
- Add toast interaction demo buttons
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 26 May
|
Style login card: 460px max-width, max-content submit, centered form-group
...
- .card.login-card max-width 360px -> 460px
- .login-card-submit width 100% -> max-content
- Fix .form-group indentation inside .login-card
- Demo login button: btn-secondary with-icon ph-sign-in
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 26 May
|
Add GnLoginCard component for standardized login forms
...
- Create GnLoginCard Vue adapter component with username/password
fields, optional remember-me checkbox, submit button, and
forgot-password / sign-up links.
- Add `.login-card` styles in _cards.scss with centered header,
full-width submit button, and spaced link row.
- Register GnLoginCard in plugin and index exports.
- Add login-card demo block to demo/partials/cards.html.
- Update CLAUDE.md, README, and Vue docs with component entry.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 26 May
|
Replace translucent $surface-panel-muted with solid $color-dark
...
$surface-panel-muted was `rgba($color-text-light, 0.045)` — an ugly,
almost-invisible blue tint. It is now `=#1F2335`, the proper dark panel
background for cards, groups, tables, tabs, drawers, etc.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 26 May
|
Add disabled styles for .btn-icon
...
Disabled `.btn-icon` now matches `.btn[disabled]` appearance:
muted text color, transparent background/border, not-allowed cursor,
0.72 opacity, and suppressed hover state.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 26 May
|
Add compact .btn-icon-sm and fix copy-button demo
...
- Introduce `.btn-icon-sm` (28×28, 18 px icon) in `_buttons.scss` for
a miniature icon-button variant.
- Remove `.btn-secondary` from demo copy buttons so they render as
transparent icon-only controls without background.
- Add `size` prop to `GnIconButton` and `GnCopyButton` Vue components.
- Update docs and demo to reflect the new size option.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 26 May
|
Ensure every icon carries the base `ph` class
...
- `iconNode()` in `src/vue/utils.js` now always prepends `ph` to the
generated <i> class list, guaranteeing the base Phosphor font-family.
- Fix all raw HTML/JS spinners that used `ph-bold ph-spinner` without
the base `ph` class: buttons demo, helper.js loading states.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 26 May
|
Add GnCopyButton component and strict icon rule in docs
...
- Create GnCopyButton Vue adapter component with clipboard copy
and 3-second icon swap from ph-copy to ph-check.
- Register GnCopyButton in plugin and index exports.
- Add copy-button demo block to demo/partials/buttons.html.
- Update CLAUDE.md, README, and Vue docs with component entry.
- Enforce "all icons must carry the ph class" rule in CLAUDE.md.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 26 May
|
Add GnHorizontalCard component
...
- New SCSS block .card-horizontal with 1:4 flex layout
.card-media (20% width, min 80px, max 160px)
.card-body with .card-title, .card-content, .card-footer
- Title supports optional link via titleHref prop
- Image is optional; card works without it
- Registered in plugin.js and index.js exports
- Updated docs: README, CLAUDE.md, component-api, component-map, ai-usage-guide
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 26 May
|

Improve Vue adapter usability, add router support, and fix animations
...
- Remove hover rotation from .btn-icon (SCSS)
- Fix iconNode to auto-prefix missing "ph-" and warn in dev
- Add CLAUDE.md as AI agent quick-reference for component usage
- Include src/vue/ and CLAUDE.md in published package files
- Add exports field wildcard for src/vue/* subpaths
- Reposition Vue adapter docs as primary contract (not thin wrapper)
- Add JSDoc @typedef to key Vue components (GnButton, GnInput, etc.)
- Add Vue demo page (demo/vue.html) linked from main navigation
Router support (optional, no hard dependency):
- Create useVueRouter composable with safe getCurrentInstance access
- Create GnRouterTabs component for route-driven tabs
- Add item.to support to GnNavList with auto-active and router.push
- Forward activeMatch through GnNavigationShell to GnNavList
- Register GnRouterTabs in plugin and index exports
- Update docs (README, CLAUDE, component-api, ai-usage-guide, component-map)
Fix missing close animations in Vue components:
- GnModal: a-hide transition before unmount (300ms)
- GnDrawer: a-hide transition before unmount (300ms)
- GnToastProvider: dismiss with a-hide animation, close for instant clear
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 26 May
|
| 2026-05-17 |
Included dist to repo
Eugene Sukhodolskiy
committed
on 17 May
|