- Add object-fit: contain + black background for video in DTMediaFrame
- Style .dt-card-badge with mode-colored background, padding, and
bevel-aware positioning (negative right offset for clean diagonal clip)
- Restore DTStaggerContainer in react-native (was incorrectly deleted)
- Update DTGallery, DTModal, DTMobileFilterOverlay, DTMediaFrame components
- Refresh showcase pages for desktop and mobile
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extend the .dt-bevel-media inner clip-path selector to cover
model-viewer and iframe children, matching the existing treatment
for img and video. Without this, 3D viewers and embedded video
iframes filled edge-to-edge and covered the neon bevel border.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The child clip-path used bevel-md - 3px from child corner, but should
use bevel-md to align with the ::before inner surface diagonal. This
caused the bottom-right bevel border to appear too thin.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace CSS nth-child stagger rules with JS-driven wrapper divs that set
animationDelay inline. Adds delay (base offset) and interval (ms between
children) props. Removes --dt-stagger-interval CSS variable and 24
nth-child rules in favor of unlimited children support.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Progress bar now fills top-down (was bottom-up). When progress prop is
omitted the bar stays empty and the card renders at full size. Only cards
that explicitly pass progress={0–100} show the animated bar.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When documentLevel is true, sets data-brand and data-theme on
document.documentElement instead of rendering a wrapper div.
This is needed for apps where CSS ancestor selectors must match
from the document root (e.g. [data-brand="dt"] .card).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- NExT v2: fix access control (Legacy, not DESFire/iCLASS), digital
security (unsupported), magic (supported via T5577), illumination
(supported HF LED), data sharing (1 kB), payment (unsupported)
- Replace Titan with m0422a magnet: RP 22,860 G/g sensing, ~20 g
lifting, Push/Pull haptics, Monopole polarity detection
- xLED HF: correct illumination colors and Low prominence
- All data sourced from dt-shopify-storefront model definitions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
electron-builder requires a repository field to detect the
GitHub repo for publishing artifacts.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Render HexGridBackground globally on every page
- Add dedicated Hex Background page with sliders for all 8 props
- Lift hex props state to App for real-time global updates
- Add three, @react-three/fiber, hex-background deps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add author, repository, homepage, keywords, and engines fields to
all 6 publishable package.json files
- Add README.md to react, tailwind-preset, and hex-background packages
- Add "type": "module" to web and react-native for consistency
- Rename web build script to .cjs for ESM package compatibility
- Remove overly broad "./dist/*" export from web package
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add "require" export condition to tailwind-preset for Node 18 CJS
compatibility (jiti resolution). Add LICENSE files to react,
tailwind-preset, and hex-background packages. Add license field to
showcase packages.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- DTDrawer: storefront-matching dual-element bevel border, slide-in/out
animations from correct edge, 99vh height, bold 2em header, box shadow
- DTModal: interactive demos on Bevels page with all 5 mode variants
- Badges: solid color fill with contrasting text (black on dark, white on light)
instead of transparent fill with colored text
- Animations: add dt-slide-right and dt-slide-left keyframes for drawers
- Bevels page: remove trash "Button Bevels", add interactive modal/drawer
demos, fix media frame to use real images with proper bevel styling
- Advanced Cards: remove redundant media frame sections, rename "Menu Items"
to "Buttons", remove DTButton/dt-btn references
- Forms page: rename "Menu Items" to "Buttons"
- Vite config: exclude design system packages from optimizeDeps pre-bundling
and watch dist directories to prevent stale CSS during development
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Major feature migration from dt-shopify-storefront into the design system:
- Card system: per-card color modes (normal/emphasis/warning/success/other),
progress bars, full-bleed card body (card-body-flush), image bevel clip-paths,
and visible structural borders at bevel corners
- Badge system: dt-card-badge with position-aware offsets for cards vs media frames
- Media frames: dt-bevel-media with inner surface fill, image clipping, and
"MISSING MEDIA" placeholder for empty containers
- Interactive bevel buttons: dt-btn with hover/selected states and pulse animation
- Menu items: dt-menu-item with active states and level indentation
- Animations: scale-in, fade-in, slide-up, pulse, ping, spin keyframes
- Feature legend: CSS grid for product feature icons with state colors
- Scrollbar styling for DT brand
- New @dangerousthings/react package wrapping web CSS components
- New @dangerousthings/tailwind-preset package
- New @dangerousthings/hex-background package
- Desktop showcase rewritten in React with Tailwind CSS
- Mobile showcase updated with new screens (animations, filters, advanced cards)
- Tokens: added mode color tokens, RGB variants, and selected-state tokens
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Refactor all 18 React Native components from static DTColors imports to
dynamic useDTTheme() context, enabling proper visual differentiation
when switching between DT and Classic brands.
Key changes:
- Replace static DTColors with theme context in all components
- Add shape tokens (bevel/radius) to DTExtendedTheme interface
- Conditionally render SVG bevels (DT) vs borderRadius (Classic)
- Configure fonts per brand (Tektur for DT, system sans-serif for Classic)
- Update buildThemeFromBrand to parse shape and typography tokens
- Fix Metro config for monorepo singleton resolution
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Supra (VivoKey MD3 theme) has been extracted into a standalone
Dangerous-Pi theme plugin. Remove all supra references from tokens,
web CSS, showcase apps, and documentation.
- Delete supra brand tokens and elevation.css
- Update ThemeBrand type to "dt" | "classic"
- Remove supra from CSS generation, imports, and bevels
- Update CLAUDE.md and package READMEs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New workspace packages for demonstrating design system components:
- Desktop: Electron + Vite app with brand/theme switching
- Mobile: Expo React Native app with brand switching
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace hardcoded hex/opacity values with CSS custom properties for
proper theming support across brands.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Each published package now includes its own README (shown on npm) and
a copy of the MIT license so both travel with the tarball.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>