Fix/progress bar track color attr#6
Merged
Conversation
applyAttributes only matched trackColor, but attributes reach elements verbatim and the docs use track-color — the documented spelling was silently dropped. Accept both, matching every other element. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
line-height / line-height-px now work alongside the camelCase forms, matching how every other attribute on these elements is matched. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Light/dark color tokens now resolve through core's
TailwindParser::resolveColorValue() on load/merge, so the config
accepts Tailwind palette names ('violet-600'), opacity modifiers
('red-300/20', '#8B5CF6/50'), and CSS alpha hex ('#8B5CF680') alongside
plain hex. Unrecognized strings pass through untouched.
Dark-mode auto-derivation (invertLuminance) now carries the alpha byte
through instead of skipping 8-digit values.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Every element color prop — ActivityIndicator/BareTextInput/Icon/ ProgressBar color setters, ListItem's styling setters, monogram and icon-tile colors, and the badge color / swipe-action tint payloads — now routes through the shared ResolvesColorValues trait, so 'red-300', 'red-300/20', and '#8B5CF680' work everywhere hex did. Unrecognized strings still pass through to the native fallbacks. Icon also accepts :ios / :android platform enum attributes in blade, matching the programmatic Icon::make(ios: …, android: …) shape. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Secondary: iOS used `.bordered` (renders its tint at ~15% opacity — the
fuchsia token washed to pale pink under a white onSecondary label) and
Android baked in a 0.7 tonal alpha. Both now fill the secondary token
solid like every other variant; a tonal look is authored on the token
itself ('secondary' => 'fuchsia-500/70').
Disabled/loading: both platforms now draw surface-variant fill +
on-surface-variant label instead of the platform defaults (M3's
onSurface-at-38%; iOS's system gray under a persisted explicit white
foregroundStyle). The iOS loading spinner gets an explicit tint so it
no longer inherits the pale disabled fill and vanishes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Document the shared authoring grammar — Tailwind palette names, /N opacity modifiers, CSS #RRGGBBAA alpha hex — for theme tokens, element color props, and arbitrary classes; the surface-variant / on-surface-variant disabled-state tokens; and blade <icon :ios/:android> enum attributes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…d chrome The theme's font-family token (config/native-ui.php) was plumbed to the native stores but consumed by nothing. Every visible-text site now falls back to it, with precedence: element font attr > font-serif/font-mono > theme default > system. iOS: nuiScaledFont resolves the default inside NUIScaledFontModifier (theme-observing), the composed text-run path mirrors it, and NativeUITheme.apply() sets UINavigationBar appearance title fonts so system-drawn (large) titles follow the app default. 12 renderer sites converted from semantic fonts to nuiScaledFont (list items, list section headers/footers, checkbox/radio/select labels, nav titles/labels). Android: nuiThemeDefaultFontFamily/nuiDefaultFontFamily helpers + a fontFamily pass at 29 Text sites (badge, chips, checkboxes, radios, toggle, tabs, list + list items, select, input slots, nav). Core chrome fonts wholesale through the new NativeUIThemeProvider typography seam, populated with nuiThemeDefaultTypography (all 15 M3 styles, family-only swap); per-bar font_name props resolve through the fontFamilyResolver seam registered in registerNativeUIChrome. Intentionally skipped: SwiftUI Menu items and the modal close glyph (system-styled). Element-level font/leading serialization pinned in tests/FontTypographyTest.php. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…onts
php artisan native:font Lobster ("Rock Salt", multiple families,
--weights=400,700, --italic) downloads TTFs straight from Google with no
API key: the css2 endpoint serves truetype src urls to non-browser user
agents, so we request the stylesheet, parse the @font-face blocks, and
fetch the files. A 400 doubles as family-not-found. Files land as
<Family>-<Style>.ttf (Google's zip naming) — ready-made font="…" tokens.
--default (or an interactive confirm) writes the theme's font-family in
config/native-ui.php, publishing the stub first when the app hasn't.
Pure logic (spec building, css parsing, filenames, config rewrite) lives
in Fonts\GoogleFonts — the plugin test env has no illuminate/console, so
testable code can't sit on the Command. Covered in GoogleFontsTest,
including a regression guard that the config rewrite keeps matching the
shipped stub.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.