*/ function oribi_get_theme_defaults() { return [ /* ── Light-mode colour palette ──────────────────────── */ 'color_primary' => '#004225', 'color_primary_dk' => '#002E1A', 'color_primary_lt' => '#E8F5E9', 'color_accent' => '#4CAF50', 'color_accent_dk' => '#388E3C', 'color_accent_lt' => '#E8F5E9', 'color_dark' => '#111111', 'color_dark_2' => '#1A1A1A', 'color_text' => '#333333', 'color_text_muted' => '#666666', 'color_border' => '#E0E0E0', 'color_bg' => '#FFFFFF', 'color_bg_alt' => '#F5F5F5', /* ── Dark-mode colour palette ───────────────────────── */ 'dark_primary' => '#4CAF50', 'dark_primary_dk' => '#004225', 'dark_primary_lt' => 'rgba(0,66,37,0.15)', 'dark_accent' => '#66BB6A', 'dark_accent_dk' => '#4CAF50', 'dark_accent_lt' => 'rgba(76,175,80,0.15)', 'dark_dark' => '#E0E0E0', 'dark_dark_2' => '#BDBDBD', 'dark_text' => '#E0E0E0', 'dark_text_muted' => '#9E9E9E', 'dark_border' => '#333333', 'dark_bg' => '#1A1A1A', 'dark_bg_alt' => '#222222', 'dark_bg_dark' => '#111111', 'dark_heading' => '#F5F5F5', 'dark_card_bg' => '#222222', /* ── Typography ─────────────────────────────────────── */ 'font_family' => 'inter', // slug from WP Font Library 'font_heading' => '', // empty = same as body /* ── Border radii ───────────────────────────────────── */ 'radius_sm' => '6', 'radius_md' => '12', 'radius_lg' => '20', 'radius_xl' => '32', /* ── Spacing / layout ───────────────────────────────── */ 'container_max' => '1200', 'container_pad_min' => '1', 'container_pad_max' => '2', 'wide_size' => '1536', ]; } /** * Retrieve a single design-token value, respecting saved theme-mod overrides. * * @param string $key Token name (e.g. 'color_primary'). * @return string */ function oribi_get_setting( $key ) { $defaults = oribi_get_theme_defaults(); $default = isset( $defaults[ $key ] ) ? $defaults[ $key ] : ''; return get_theme_mod( 'oribi_' . $key, $default ); } /** * Persist the current set of defaults into theme-mods (one-time migration). * * Called the first time the settings page is loaded, so that existing sites * start with their current visual identity already stored. */ function oribi_maybe_seed_defaults() { if ( get_theme_mod( 'oribi_defaults_seeded' ) ) { return; } $defaults = oribi_get_theme_defaults(); foreach ( $defaults as $key => $value ) { // Only set if the user hasn't already saved a value. if ( false === get_theme_mod( 'oribi_' . $key, false ) ) { set_theme_mod( 'oribi_' . $key, $value ); } } set_theme_mod( 'oribi_defaults_seeded', true ); }