mirror of
https://github.com/zed-industries/zed.git
synced 2024-10-23 06:56:33 +00:00
Start documenting Theme crate
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
This commit is contained in:
parent
ab6cd1d93a
commit
bcbfa7d036
6 changed files with 51 additions and 47 deletions
23
Cargo.lock
generated
23
Cargo.lock
generated
|
@ -1515,7 +1515,7 @@ dependencies = [
|
|||
"tonic",
|
||||
"tower",
|
||||
"tracing",
|
||||
"tracing-log 0.1.3",
|
||||
"tracing-log",
|
||||
"tracing-subscriber",
|
||||
"unindent",
|
||||
"util",
|
||||
|
@ -6930,9 +6930,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "sharded-slab"
|
||||
version = "0.1.7"
|
||||
version = "0.1.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
|
||||
checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
]
|
||||
|
@ -8316,17 +8316,6 @@ dependencies = [
|
|||
"tracing-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-log"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
|
||||
dependencies = [
|
||||
"log",
|
||||
"once_cell",
|
||||
"tracing-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-serde"
|
||||
version = "0.1.3"
|
||||
|
@ -8339,9 +8328,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "tracing-subscriber"
|
||||
version = "0.3.18"
|
||||
version = "0.3.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
|
||||
checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
|
||||
dependencies = [
|
||||
"matchers",
|
||||
"nu-ansi-term",
|
||||
|
@ -8354,7 +8343,7 @@ dependencies = [
|
|||
"thread_local",
|
||||
"tracing",
|
||||
"tracing-core",
|
||||
"tracing-log 0.2.0",
|
||||
"tracing-log",
|
||||
"tracing-serde",
|
||||
]
|
||||
|
||||
|
|
|
@ -2,41 +2,31 @@ use gpui::{AppContext, Hsla, SharedString};
|
|||
|
||||
use crate::{ActiveTheme, Appearance};
|
||||
|
||||
/// A one-based step in a [`ColorScale`].
|
||||
/// A collection of colors that are used to style the UI.
|
||||
///
|
||||
/// Each step has a semantic meaning, and is used to style different parts of the UI.
|
||||
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy)]
|
||||
pub struct ColorScaleStep(usize);
|
||||
|
||||
impl ColorScaleStep {
|
||||
pub const ONE: Self = Self(1);
|
||||
pub const TWO: Self = Self(2);
|
||||
pub const THREE: Self = Self(3);
|
||||
pub const FOUR: Self = Self(4);
|
||||
pub const FIVE: Self = Self(5);
|
||||
pub const SIX: Self = Self(6);
|
||||
pub const SEVEN: Self = Self(7);
|
||||
pub const EIGHT: Self = Self(8);
|
||||
pub const NINE: Self = Self(9);
|
||||
pub const TEN: Self = Self(10);
|
||||
pub const ELEVEN: Self = Self(11);
|
||||
pub const TWELVE: Self = Self(12);
|
||||
|
||||
/// All of the steps in a [`ColorScale`].
|
||||
pub const ALL: [ColorScaleStep; 12] = [
|
||||
Self::ONE,
|
||||
Self::TWO,
|
||||
Self::THREE,
|
||||
Self::FOUR,
|
||||
Self::FIVE,
|
||||
Self::SIX,
|
||||
Self::SEVEN,
|
||||
Self::EIGHT,
|
||||
Self::NINE,
|
||||
Self::TEN,
|
||||
Self::ELEVEN,
|
||||
Self::TWELVE,
|
||||
];
|
||||
const ONE: Self = Self(1);
|
||||
const TWO: Self = Self(2);
|
||||
const THREE: Self = Self(3);
|
||||
const FOUR: Self = Self(4);
|
||||
const FIVE: Self = Self(5);
|
||||
const SIX: Self = Self(6);
|
||||
const SEVEN: Self = Self(7);
|
||||
const EIGHT: Self = Self(8);
|
||||
const NINE: Self = Self(9);
|
||||
const TEN: Self = Self(10);
|
||||
const ELEVEN: Self = Self(11);
|
||||
const TWELVE: Self = Self(12);
|
||||
}
|
||||
|
||||
/// A scale of colors for a given [ColorScaleSet].
|
||||
///
|
||||
/// Each [ColorScale] contains exactly 12 colors. Refer to
|
||||
/// [ColorScaleStep] for a reference of what each step is used for.
|
||||
pub struct ColorScale(Vec<Hsla>);
|
||||
|
||||
impl FromIterator<Hsla> for ColorScale {
|
||||
|
@ -229,6 +219,7 @@ impl IntoIterator for ColorScales {
|
|||
}
|
||||
}
|
||||
|
||||
/// Provides groups of [ColorScale]s for light and dark themes, as well as transparent versions of each scale.
|
||||
pub struct ColorScaleSet {
|
||||
name: SharedString,
|
||||
light: ColorScale,
|
||||
|
|
|
@ -27,7 +27,7 @@ pub struct ThemeSettings {
|
|||
}
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct AdjustedBufferFontSize(Pixels);
|
||||
pub(crate) struct AdjustedBufferFontSize(Pixels);
|
||||
|
||||
#[derive(Clone, Debug, Default, Serialize, Deserialize, JsonSchema)]
|
||||
pub struct ThemeSettingsContent {
|
||||
|
|
|
@ -7,6 +7,7 @@ use crate::{PlayerColors, StatusColors, StatusColorsRefinement, SyntaxTheme, Sys
|
|||
#[derive(Refineable, Clone, Debug)]
|
||||
#[refineable(Debug, serde::Deserialize)]
|
||||
pub struct ThemeColors {
|
||||
/// Border color. Used for most borders, is usually a high contrast color.
|
||||
pub border: Hsla,
|
||||
/// Border color. Used for deemphasized borders, like a visual divider between two sections
|
||||
pub border_variant: Hsla,
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
//! # Theme
|
||||
//!
|
||||
//! This crate provides the theme system for Zed.
|
||||
//!
|
||||
//! ## Overview
|
||||
//!
|
||||
//! A theme is a collection of colors used to build a consistent appearance for UI components across the application.
|
||||
|
||||
mod default_colors;
|
||||
mod default_theme;
|
||||
mod one_themes;
|
||||
|
|
15
crates/theme/theme.md
Normal file
15
crates/theme/theme.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Theme
|
||||
|
||||
This crate provides the theme system for Zed.
|
||||
|
||||
## Overview
|
||||
|
||||
A theme is a collection of colors used to build a consistent appearance for UI components across the application.
|
||||
To produce a theme in Zed,
|
||||
|
||||
A theme is made of of two parts: A [ThemeFamily] and one or more [Theme]s.
|
||||
|
||||
//
|
||||
A [ThemeFamily] contains metadata like theme name, author, and theme-specific [ColorScales] as well as a series of themes.
|
||||
|
||||
- [ThemeColors] - A set of colors that are used to style the UI. Refer to the [ThemeColors] documentation for more information.
|
Loading…
Reference in a new issue