ഉള്ളടക്കത്തിലേക്ക് പോകുക
ബീറ്റ · പരീക്ഷണാത്മകംReact 19പിയർ ഡിപൻഡൻസികളില്ല

തീമിംഗ്

:root-ൽ ഒരു കൂട്ടം --gbs-* വേരിയബിളുകൾ എല്ലാ കമ്പോണന്റുകളും ഒരുമിച്ച് തീം ചെയ്യുന്നു, ആവശ്യമുള്ളപ്പോൾ ഓരോ കമ്പോണന്റിനും ഓരോ വിഭാഗത്തിനും വേണ്ടിയുള്ള ഓവർറൈഡുകളോടുകൂടി.

ബീറ്റ കമ്പോണന്റുകൾ മാറാൻ സാധ്യതയുണ്ട്; അവ നിങ്ങളുടെ കോഡ് തകരാറിലാക്കിയേക്കാം. സ്വന്തം ഉത്തരവാദിത്തത്തിൽ ഉപയോഗിക്കുക, ബഗ് ട്രാക്കർ വഴി അഭിപ്രായം അറിയിക്കുക.

ഈ പേജിൽ

ഒരു പാലറ്റ്, എല്ലാ കമ്പോണന്റും

ഓരോ കമ്പോണന്റും ഒരു ഡിഫോൾട്ട് രൂപത്തോടെയാണ് വരുന്നത്, കോൺഫിഗറേഷൻ ഒന്നും ആവശ്യമില്ല. നിങ്ങളുടെ സ്വന്തം പാലറ്റ് വേണമെങ്കിൽ, --gbs-* വേരിയബിളുകൾ :root-ൽ ഒരു തവണ സെറ്റ് ചെയ്യുക, അപ്പോൾ ഇൻസ്റ്റോൾ ചെയ്ത എല്ലാ കമ്പോണന്റുകളും അത് പിന്തുടരും — DataGrid ഉൾപ്പെടെ.

css
:root {
  --gbs-accent: #7c3aed;
  --gbs-accent-soft: #f3e8ff;
  --gbs-radius: 10px;
  --gbs-font-size: 14px;
}

ലൈബ്രറി തീം ചെയ്യാനുള്ള മുഴുവൻ API അതാണ്. ഒരു പാലറ്റ് മതിയാകാത്ത സന്ദർഭങ്ങൾക്കുള്ളതാണ് താഴെയുള്ളതെല്ലാം.

ഒരു കമ്പോണന്റിനുള്ളിലല്ല, :root-ൽ --gbs-* സെറ്റ് ചെയ്യുക. ഇൻഹെറിറ്റൻസിലൂടെയാണ് കമ്പോണന്റുകൾ ഈ മൂല്യങ്ങൾ വായിക്കുന്നത്, അതിനാൽ ഒരു പൂർവ്വികനിൽ (ancestor) നിങ്ങൾ സെറ്റ് ചെയ്യുന്നതെന്തും അതിനു താഴെയുള്ള ഓരോ കൺട്രോളിലേക്കും എത്തുന്നു.

ഒരു മൂല്യം എങ്ങനെ പരിഹരിക്കപ്പെടുന്നു

ഓരോ കമ്പോണന്റ് വേരിയബിളും ഒരേ ചെയിനിലൂടെ കടന്നുപോകുന്നു, സെറ്റ് ചെയ്ത ആദ്യത്തേതിൽ നിർത്തുന്നു:

  1. കമ്പോണന്റിന്റെ സ്വന്തം വേരിയബിൾ — --in-accent, --dg-accent, --ck-border എന്നിങ്ങനെ. ഒരു കമ്പോണന്റ്, അല്ലെങ്കിൽ അതിന്റെ ഒരു ഇൻസ്റ്റൻസ് മാത്രം മാറ്റാൻ ഇത് സെറ്റ് ചെയ്യുക.
  2. ഷെയേർഡ് വേരിയബിൾ — --gbs-accent. നിങ്ങൾ സാധാരണയായി സെറ്റ് ചെയ്യുന്നത് ഇതാണ്.
  3. DataGrid-ന്റെ വേരിയബിൾ — --dg-accent, ഗ്രിഡിന്റെ സ്റ്റൈൽഷീറ്റ് ലോഡ് ചെയ്തിട്ടുണ്ടെങ്കിൽ. ഈ ഷെയേർഡ് വേരിയബിളുകൾ ഉണ്ടാകുന്നതിനു മുമ്പ് ഗ്രിഡ് തീം ചെയ്ത പ്രോജക്ടുകൾ ഇപ്പോഴും പ്രവർത്തിക്കാൻ ഇത് നിലനിർത്തിയിരിക്കുന്നു.
  4. ബിൽറ്റ്-ഇൻ ഡിഫോൾട്ട് — ഒരു light-dark() ജോടി, അതിനാൽ ഇത് പേജിന്റെ കളർ സ്കീം പിന്തുടരുന്നു.

CSS-ൽ ആ ചെയിൻ ഇങ്ങനെ കാണപ്പെടുന്നു, ഏതെങ്കിലും styles.css തുറന്നാൽ നിങ്ങൾ ഇത് കാണും:

css
.in-root {
  --in-accent: var(--gbs-accent, var(--dg-accent, light-dark(#2563eb, #60a5fa)));
}

ഷെയേർഡ് വേരിയബിളുകൾ

ഡിഫോൾട്ടുകൾ ലൈറ്റ് / ഡാർക്ക് ക്രമത്തിൽ എഴുതിയിരിക്കുന്നു.

സർഫേസുകളും ടെക്സ്റ്റും

VariableDefaultUsed for
--gbs-bg#ffffff / #0b0b0eകമ്പോണന്റ് ബാക്ക്ഗ്രൗണ്ട്.
--gbs-fg#18181b / #f4f4f5ബോഡി ടെക്സ്റ്റ്.
--gbs-muted#71717a / #a1a1aaസൂചനകൾ, കൗണ്ടറുകൾ, ദ്വിതീയ ടെക്സ്റ്റ്.
--gbs-subtle#f4f4f5 / #1c1c20സെക്കൻഡറി ബട്ടൺ പോലുള്ള ശാന്തമായ ഫില്ലുകൾ.
--gbs-hover#f4f4f5 / #1f1f23ബട്ടണുകളിലും മെനു ഐറ്റങ്ങളിലും ഹോവർ ബാക്ക്ഗ്രൗണ്ട്.
--gbs-input-bg#ffffff / #121216ഒരു ഫീൽഡിന്റെ ഉള്ളിൽ.
--gbs-readonly-bg#fafafa / #0e0e12എഡിറ്റ് ചെയ്യാൻ കഴിയാത്ത ഒരു ഫീൽഡ്.
--gbs-header-bg#fafafa / #111114ഗ്രിഡ് ഹെഡർ, മോഡൽ ഫൂട്ടർ.
--gbs-header-fg#3f3f46 / #d4d4d8ഗ്രിഡ് ഹെഡർ ടെക്സ്റ്റ്.

ബോർഡറുകളും ആകൃതിയും

VariableDefaultUsed for
--gbs-border#e4e4e7 / #27272aപുറത്തെ ബോർഡറുകൾ.
--gbs-border-subtle#f0f0f2 / #1c1c20റോ സെപ്പറേറ്ററുകളും മറ്റ് ശാന്തമായ വരകളും.
--gbs-border-control#a1a1aa / #52525bഒരു ചെക്ക്ബോക്സിന്റെയോ റേഡിയോയുടെയോ ഔട്ട്‌ലൈൻ, ഒരു പാനൽ എഡ്ജിനേക്കാൾ കൂടുതൽ കോൺട്രാസ്റ്റ് ഇതിന് ആവശ്യമാണ്.
--gbs-radius8pxകോർണർ റേഡിയസ്.
--gbs-font-size13pxഅടിസ്ഥാന വലുപ്പം; മറ്റെല്ലാം ഇതിനെ ആപേക്ഷികമാണ്.
--gbs-shadow0 10px 30px -8px …പോപ്പോവറുകളും മെനുകളും.
--gbs-backdroprgb(9 9 11 / 0.45) / rgb(0 0 0 / 0.65)ഒരു മോഡലിനോ ഡയലോഗിനോ പിന്നിൽ.

ആക്സന്റും സ്റ്റാറ്റസും

VariableDefaultUsed for
--gbs-accent#2563eb / #60a5faതിരഞ്ഞെടുത്തത്, ചെക്ക് ചെയ്തത്, ആക്റ്റീവ്.
--gbs-accent-fg#ffffff / #0b1220ഒരു ആക്സന്റ് ഫില്ലിലെ ടെക്സ്റ്റ്.
--gbs-accent-soft#eff6ff / #172554ടിന്റ് ചെയ്ത ബാക്ക്ഗ്രൗണ്ടുകൾ.
--gbs-accent-strong#1d4ed8 / #bfdbfeഒരു ആക്സന്റ് ഫില്ലിന്റെ പ്രെസ്ഡ് (pressed) സ്റ്റേറ്റ്.
--gbs-focus#2563eb / #60a5faഫോക്കസ് റിംഗുകൾ.
--gbs-danger#dc2626 / #f87171പിശകുകളും വിനാശകരമായ (destructive) പ്രവർത്തനങ്ങളും.
--gbs-danger-fg#ffffff / #1c0606ഒരു ഡേഞ്ചർ ഫില്ലിലെ ടെക്സ്റ്റ്.
--gbs-success#15803d / #4ade80പൂർത്തിയായ അപ്‌ലോഡുകൾ, സക്സസ് ടോസ്റ്റുകൾ.
--gbs-warning#d97706 / #fbbf24മുന്നറിയിപ്പുകൾ.
--gbs-info--gbs-accent-ലേക്ക് ഫാൾബാക്ക് ചെയ്യുന്നുവിവരപ്രദമായ ഡയലോഗുകളും ടോസ്റ്റുകളും.

ഗ്രിഡ് റോകൾ

DataGrid മാത്രമാണ് ഇവ ഉപയോഗിക്കുന്നത്.

VariableDefaultUsed for
--gbs-row-alt#fcfcfd / #0e0e12സ്ട്രൈപ്പ് ചെയ്ത റോകൾ.
--gbs-row-hover#f4f4f5 / #18181cഹോവർ ചെയ്ത റോ.
--gbs-row-selected#eef4ff / #14213dതിരഞ്ഞെടുത്ത റോ.
--gbs-row-selected-hover#e2ecff / #1a2a4dതിരഞ്ഞെടുത്തതും ഹോവർ ചെയ്തതും.
--gbs-cell-px12pxതിരശ്ചീന (horizontal) സെൽ പാഡിംഗ്.
--gbs-pin-shadowrgb(0 0 0 / 0.08) / rgb(0 0 0 / 0.5)ഒരു പിൻ ചെയ്ത കോളത്തിന്റെ അറ്റം.

ഡാർക്ക് മോഡ്

ഡിഫോൾട്ടുകൾ light-dark() ജോടികളാണ്, അതിനാൽ അധിക ജോലി കൂടാതെ അവ പേജിന്റെ color-scheme പിന്തുടരുന്നു. ഇത് ഒരു തവണ സെറ്റ് ചെയ്യുക:

css
:root {
  color-scheme: light dark;
}

സിസ്റ്റം സെറ്റിംഗ് കണക്കിലെടുക്കാതെ ഒരു സ്കീം നിർബന്ധമാക്കാൻ, <html> പോലുള്ള ഒരു പൂർവ്വികനിൽ class="dark" അല്ലെങ്കിൽ data-theme="dark" (അല്ലെങ്കിൽ "light") വെക്കുക. കമ്പോണന്റുകൾ ഇവ രണ്ടിനോടും പ്രതികരിക്കുന്നു.

നിങ്ങൾ സ്വന്തം നിറങ്ങൾ സെറ്റ് ചെയ്യുകയാണെങ്കിൽ, രണ്ട് സ്കീമുകളും നൽകുക, അല്ലെങ്കിൽ നിങ്ങളുടെ ഡാർക്ക് മോഡ് ലൈറ്റ് മൂല്യങ്ങൾ തന്നെ നിലനിർത്തും:

css
:root {
  --gbs-accent: light-dark(#7c3aed, #c4b5fd);
}

ഒരു വിഭാഗം തീം ചെയ്യുന്നത്

വേരിയബിളുകൾ ഇൻഹെറിറ്റ് ചെയ്യുന്നതിനാൽ, ഒരു പേജിന്റെ ഭാഗത്തേക്ക് ഒരു പാലറ്റ് സ്കോപ്പ് ചെയ്യുന്നത് നിങ്ങൾ അത് എവിടെ സെറ്റ് ചെയ്യുന്നു എന്നതിന്റെ കാര്യം മാത്രമാണ്:

css
.admin-area {
  --gbs-accent: #0f766e;
  --gbs-radius: 4px;
}

.admin-area-ക്കുള്ളിലുള്ള എല്ലാം ടീൽ ആക്സന്റ് ഉപയോഗിക്കുന്നു; പേജിന്റെ ബാക്കി ഭാഗം അങ്ങനെയല്ല.

ഒരു കമ്പോണന്റ് തീം ചെയ്യുന്നത്

ഷെയേർഡ് വേരിയബിളിന് പകരം കമ്പോണന്റിന്റെ സ്വന്തം വേരിയബിൾ സെറ്റ് ചെയ്യുക — അത് --gbs-*-നെ മറികടക്കുന്നു:

css
.danger-zone .bt-root {
  --bt-bg: #b91c1c;
}

അല്ലെങ്കിൽ ഇൻലൈനായി, ഒരൊറ്റ ഇൻസ്റ്റൻസിന്:

tsx
<Input style={{ "--in-radius": "999px" } as CSSProperties} />

ഓരോ കമ്പോണന്റിന്റെയും പേജ് അതിന്റെ സ്വന്തം വേരിയബിളുകൾ ലിസ്റ്റ് ചെയ്യുന്നു.

Tailwind-നൊപ്പം

Out of date: component rules moved from the `components` cascade layer to a layer named `gbs`, and the application now declares the layer order. The section below still describes the old behaviour. See the English Theming page, Cascade layers, until this translation is updated.

എല്ലാ കമ്പോണന്റ് റൂളുകളും CSS components ലെയറിലാണ്, അതിനാൽ className അല്ലെങ്കിൽ classNames വഴി കടന്നുപോകുന്ന ഒരു യൂട്ടിലിറ്റി ക്ലാസ് !important ഇല്ലാതെ തന്നെ അവയെ മറികടക്കുന്നു:

tsx
<Button className="rounded-full px-6" />

ഒറ്റത്തവണ ക്രമീകരണങ്ങൾക്ക് യൂട്ടിലിറ്റികളും പാലറ്റിന് --gbs-*-ഉം ഉപയോഗിക്കുക. നിങ്ങളുടെ ഡിസൈൻ ടോക്കണുകൾ ഇതിനകം Tailwind തീം വേരിയബിളുകൾ ആണെങ്കിൽ, രണ്ടിനെയും പരസ്പരം ഒരു തവണ ചൂണ്ടിക്കാണിക്കുക:

css
:root {
  --gbs-accent: var(--color-violet-600);
  --gbs-danger: var(--color-rose-600);
}

ഒരു പാലറ്റ് ഷിപ്പ് ചെയ്യുന്നതിനു മുമ്പ്

അർത്ഥം വഹിക്കുന്ന ജോടികളിൽ കോൺട്രാസ്റ്റ് പരിശോധിക്കുക: --gbs-bg-ൽ --gbs-fg, --gbs-bg-ൽ --gbs-muted, --gbs-accent-ൽ --gbs-accent-fg. ഡിഫോൾട്ടുകൾ രണ്ട് സ്കീമുകളിലും WCAG AA പാലിക്കുന്നു; ഒരു കസ്റ്റം ആക്സന്റ് ആണ് ഇത് സാധാരണയായി നഷ്ടപ്പെടുന്ന വഴി, മിക്കപ്പോഴും സൂചനകളും കൗണ്ടറുകളും പോലുള്ള ചെറിയ ടെക്സ്റ്റിൽ.