| 2026-05-27 |
Add GnTagInput component for multi-value string input
...
Features:
- New GnTagInput Vue component with inline chip display
- Enter / paste (with separator split) to add tags
- Backspace in empty field removes last tag
- Unique check and maxItems limit
- Removable chips with x button
Style:
- Add _tag-input.scss with .tag-input, .tag-input-wrap, .tag-input-field
- Chips reuse existing .chip-secondary styling
Demo:
- Add interactive tag input example to Forms section (vanilla + Vue)
- Add code example blocks for HTML and Vue usage
Docs:
- Add GnTagInput to CLAUDE.md component catalog
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
11 hours ago
|
Redesign toast UX: compact layout, progress bar, title-only mode
...
- Replace heavy colored header strip with inline icon+title header
- Add thin bottom progress bar showing remaining lifetime
- Support title-only compact single-line toasts (no text = no body padding)
- Increase tinted background opacity from 0.06 to 0.18 for visibility
- Fix vanilla toast defaults: all variants now use lifetime=4000, alone=true
- Add demo buttons for title-only variants in both vanilla and Vue demos
- Remove hover effect from toast close button
- Adjust close button position (top: 5px) and progress bar margin (1px)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
11 hours ago
|
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
12 hours ago
|
| 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
23 hours ago
|
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
1 day ago
|
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
1 day ago
|
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
1 day ago
|
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
1 day ago
|
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
1 day ago
|

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
1 day ago
|
| 2026-05-17 |
Included dist to repo
Eugene Sukhodolskiy
committed
10 days ago
|