Personalization
Choose a fixed appearance or keep this browser in step with the operating system.
Native light, dark, and system preferences synchronized through one document runtime.
app/components/nitro_kit/appearance_picker.rbNitroKit::AppearancePicker.new(id:, label: "Appearance")Light, dark, and system remain labelled radio choices without JavaScript.
test/dummy/app/components/gallery/components/appearance_picker_page.rbrender NitroKit::AppearancePicker.new(id: "gallery-appearance-default")test/dummy/app/components/gallery/components/appearance_picker_page.rbrender NitroKit::AppearancePicker.new(
id: "gallery-appearance-product",
label: "Color appearance"
)Every mounted picker reflects the one document-owned preference.
test/dummy/app/components/gallery/components/appearance_picker_page.rbsample("Navigation control", slug: "navigation-control") do
render NitroKit::AppearancePicker.new(
id: "gallery-appearance-navigation",
label: "Site appearance"
)
end
sample("Settings control", slug: "settings-control") do
render NitroKit::AppearancePicker.new(
id: "gallery-appearance-settings",
label: "Account appearance"
)
endAppearance is a document preference, even when the control lives in a settings surface.
Choose a fixed appearance or keep this browser in step with the operating system.
test/dummy/app/components/gallery/components/appearance_picker_page.rbrender NitroKit::Card.new(id: "gallery-appearance-card") do |card|
card.title("Personalization", level: 3)
card.body do
p { "Choose a fixed appearance or keep this browser in step with the operating system." }
render NitroKit::AppearancePicker.new(
id: "gallery-appearance-card-control",
label: "Interface appearance"
)
end
card.footer do
render NitroKit::Badge.new("Saved in this browser", variant: :outline, color: :neutral)
end
end