code wiki / (root) / nx_css_color_decode.nx

nx_css_color_decode.nx

buildroot/runtime/nx_css_color_decode.nx

12515 B291 linesdepth 2pulls 2 transitivereach 201 importersview sourcekind librarytopic css
docsdependenciesstructsconstsfunctions

about

nx_css_color_decode.nx -- decode a CSS HEXCOLOR byte range into concrete (r, g, b, a) integers in [0, 255]. Phase 2.5 primitive bridging the value-as-bytes representation (from nx_css_tokenize / nx_css_parse / nx_css_apply) to the integer color consumed by the eventual nx_layout + nx_paint pipeline. Per CSS spec section 4.4 (CSS Color Module Level 4), valid hex color shapes are: #RGB 3-char form: each digit doubled (#abc -> #aabbcc) #RGBA 4-char form: same as above, last digit -> alpha #RRGGBB 6-char form: full RGB #RRGGBBAA 8-char form: full RGB + alpha All hex digits case-insensitive (0-9, a-f, A-F). What it does NOT handle (Phase 2b improvements): - named colors (red, blue, ...) -- handled by separate nx_css_color_named primitive (queued) - rgb() / rgba() / hsl() / hsla() functional notation - color-mix() / color() CSS-4 functions - currentColor / system colors / transparent keyword genealogy_id: w3c_css_color_module_level_4 + substrate_browser_phase_2_color_decode lineage_id: nishi_browser_css_color_decode_v1 nx_safety_envelope: intended_use: "CSS hex color decode -- layout/paint input" sil_target: SIL1 evidence: [W3C_CSS_Color_module_canonical_basis, sealed_4_supported_lengths, pure_function_no_allocation] verdict: NOT_YET_EVALUATED

dependencies 1 imports · 49 importers

nx_syscalls.nx nx_css_color_decode.nx nx_align_gate.nx nx_brand_guard.nx nx_browser.nx nx_browser_demo_42.nx nx_browser_demo_hello.nx nx_browser_demo_html.nx nx_browser_demo_html_nishi.nx nx_browser_demo_lowercase.nx nx_browser_demo_multiline.nx nx_browser_demo_pangram.nx

diagram shows first 10 each side; +0 more imports, +39 more importers in the complete lists below.

imports: nx_syscalls.nx

imported by: nx_align_gate.nxnx_brand_guard.nxnx_browser.nxnx_browser_demo_42.nxnx_browser_demo_hello.nxnx_browser_demo_html.nxnx_browser_demo_html_nishi.nxnx_browser_demo_lowercase.nxnx_browser_demo_multiline.nxnx_browser_demo_pangram.nxnx_browser_demo_styled.nxnx_browser_render.nxnx_browser_render_own_test.nxnx_caption_burn.nxnx_caption_burn_gate.nxnx_caption_render_uni.nxnx_css_color_decode_test.nxnx_cyrillic_render_gate.nxnx_flexgrow_gate.nxnx_flexgrow_probe.nxnx_float_gate.nxnx_float_test.nxnx_grid_gate.nxnx_grid_test.nxnx_grid_track_gate.nxnx_justify_gate.nxnx_layout_debug.nxnx_live_xlate_call_gate.nxnx_multilang_call_gate.nxnx_multilang_render_gate.nxnx_negmargin_gate.nxnx_paint_blend.nxnx_paint_blend_test.nxnx_paint_box_borders.nxnx_paint_box_borders_test.nxnx_paint_fb_ascii_dump_test.nxnx_paint_solid_rect.nxnx_paint_solid_rect_test.nxnx_paint_text.nxnx_paint_text_test.nxnx_paint_walk_layout.nxnx_paint_walk_layout_test.nxnx_paint_walk_layout_text_test.nxnx_real_page_gate.nxnx_render_ascii.nxnx_render_html.nxnx_render_wiki_bmp.nxnx_table_cell_gate.nxnx_wiki_boxdump.nx

structs

39struct CssColor

consts

46const NX_CSS_COLOR_BYTES: i64 = 32

functions

51func _css_color_hex_digit(c: i64) -> i64
66func _css_color_hex_pair(c_hi: i64, c_lo: i64) -> i64
77func _ccn_eq(src: *u8, off: i64, len: i64, lit: *u8) -> i64
called by 1: nx_css_color_named
90func _ccn_set(out: *CssColor, r: i64, g: i64, b: i64, a: i64) -> i64 { out.r=r; out.g=g; out.b=b; out.a=a; return 1 }
called by 1: nx_css_color_named
95func nx_css_color_named(src: *u8, off: i64, len: i64, out: *CssColor) -> i64
127func _ccr_next_uint(src: *u8, end: i64, pp: *i64, ok: *i64) -> i64
150func _ccr_alpha(src: *u8, p0: i64, end: i64) -> i64
172func nx_css_color_rgb_func(src: *u8, off: i64, len: i64, out: *CssColor) -> i64
207func nx_css_color_decode(src: *u8, hex_off: i64, hex_len: i64,