docs: Establish public roadmap and professionalize contribution workflows (#5695)

* docs: Add roadmap
* docs: Update contributing guide to add new dev workflow
* docs: Cleanup visual guidelines
* docs: Add section for Open Collective supporters
This commit is contained in:
SuperDragonXD
2025-07-31 15:07:38 +08:00
committed by GitHub
parent 4ca6f08f98
commit ffefb8fe55
10 changed files with 171 additions and 393 deletions

View File

@@ -1,4 +1,4 @@
# Lawnchair Contributing Guidelines
# Lawnchair contributing guidelines
<picture>
<!-- Avoid image being clickable with slight workaround --->
@@ -6,70 +6,90 @@
<img alt="" src="docs/assets/lawnchair-round.webp" width="100">
</picture>
Welcome to the **Lawnchair** Project, we appreciate your interest in contributing.
Feel free to reach out to us on [Telegram](https://t.me/lccommunity) or [Discord](https://discord.com/invite/3x8qNWxgGZ) for any further questions.
Welcome to the **Lawnchair** project. We appreciate your interest in contributing. For questions,
feel free to reach out on [Telegram][telegram] or [Discord][discord].
### 💫 Bug reports & feature requests
## No-code contributions
### Bug reports and feature requests
> [!TIP]
> Use the [Lawnchair Nightly builds](https://github.com/LawnchairLauncher/lawnchair/releases/tag/nightly) when creating bug reports
> and feature requests, as it contains the latest changes from Lawnchair.
> Use the [Lawnchair Nightly builds][nightly] when reporting bugs, as your issue may have already
> been fixed.
For [bug reports](https://github.com/LawnchairLauncher/lawnchair/issues/new?assignees=&labels=bug&projects=&template=bug_report.yaml&title=%5BBUG%5D+), describe the bug in detail to the best of your ability
with steps on how to reproduce it. If applicable, attach log files.
- For **[bug reports][bug-reports]**, please be as detailed as possible and provide clear steps to
reproduce the issue.
- For **[feature requests][feature-requests]**, clearly describe the feature and its potential
benefits.
For [feature requests](https://github.com/LawnchairLauncher/lawnchair/issues/new?assignees=&labels=feature%2Cenhancement&projects=&template=feature_request.yaml&title=%5BFEATURE%5D+), describe the feature you'd like to see added to Lawnchair.
Please be civil, as outlined in our [Code of Conduct][code-of-conduct].
Make sure to be civil during the discussion of your contribution as outlined by the [Code of Conduct](CODE_OF_CONDUCT.md).
### Translations
### 🌐 Translation
For translations, please visit **[Lawnchair on Crowdin][crowdin]**.
For translation, visit [Lawnchair on Crowdin](https://lawnchair.crowdin.com) and follow these tips:
## Contributing code
- When using quotation marks, insert the symbols specific to the target language, as listed in this [summary table](https://en.wikipedia.org/wiki/Quotation_mark#Summary_table);
- Some English terminology may have not have commonly-used equivalents in other languages. In such cases, use short descriptive phrases—for example, the equivalent of _bottom row_ for _dock_;
- Some languages (e.g. French) have variations of words depending on if it's masculine or feminine (gender-specific); we recommend opting for gender-neutral words instead.
### Getting started
### 🧑‍💻 Code
1. Clone the repository with the `--recursive` flag to include the project's
submodules.
```bash
git clone --recursive https://github.com/LawnchairLauncher/lawnchair.git
```
2. Open the project in Android Studio.
3. Select the `lawnWithQuickstepGithubDebug` build variant.
> [!TIP]
> For Lawnchair 9 to 14, see the branches with the `9-` to `14-` prefixes respectively.
For code, it's highly recommended that you use [Android Studio](https://developer.android.com/studio),
know [Java](https://www.java.com) or preferably [Kotlin](https://kotlinlang.org/), and [Git](https://git-scm.com/).
> [!IMPORTANT]
> Use Git to clone the repository; ensure that you include the projects submodules using the `recursive` flag:
>
> ```
> git clone --recursive https://github.com/LawnchairLauncher/lawnchair.git
> ```
To build **Lawnchair**, select the `lawnWithQuickstepGithubDebug` build type.
Should you face errors relating to the `iconloaderlib` and `searchuilib` projects,
run `git submodule update --init --recursive`.
If you encounter errors with the `iconloaderlib` or `searchuilib` modules, run
`git submodule update --init --recursive`.
Here are some contribution tips to help you get started:
- Always make sure that you're up-to-date with **Lawnchair** by setting your base branch to `15-dev`.
- Make sure your code is logical and well-formatted. If using Kotlin, see [“Coding conventions” in the Kotlin documentation](https://kotlinlang.org/docs/coding-conventions.html);
- [The `lawnchair` package](https://github.com/LawnchairLauncher/lawnchair/tree/15-dev/lawnchair) houses Lawnchairs own code, whereas [the `src` package](https://github.com/LawnchairLauncher/lawnchair/tree/15-dev/src) includes a clone of the Launcher3 codebase with modifications. Generally, place new files in the former, keeping changes to the latter to a minimum.
- Always make sure that you're up-to-date with **Lawnchair** by setting your base branch to
`15-dev`.
- Make sure your code is logical and well-formatted. If using Kotlin,
see [“Coding conventions” in the Kotlin documentation][kotlin-coding-conventions];
- [The `lawnchair` package][lawnchair-package]
houses Lawnchairs own code, whereas [the `src` package][src-package] includes a clone of
the Launcher3 codebase with modifications. Generally, place new files in the former,
keeping changes to the latter to a minimum.
#### Additional documentation
### Additional documentation
- [The Lawnchair Wiki](https://github.com/LawnchairLauncher/lawnchair/wiki)
- [Lawnchair Visual Guidelines](/docs/assets/README.md)
- [Lawnchair Quickstep Compat Library](compatLib/README.md)
- [Lawnchair Preferences Components](lawnchair/src/app/lawnchair/ui/preferences/components/README.md)
- [SystemUI Module](systemUI/README.md)
- [ViewCapture](systemUI/viewcapture/README.md)
- [Common](systemUI/common/README.md)
- [Prebuilt Library](prebuilts/libs/README.md)
- [Lawnchair roadmap](ROADMAP.md)
- [The Lawnchair Wiki](https://github.com/LawnchairLauncher/lawnchair/wiki)
- [Lawnchair Visual Guidelines](/docs/assets/README.md)
- [Lawnchair Quickstep Compat Library](compatLib/README.md)
- [Lawnchair Preferences Components](lawnchair/src/app/lawnchair/ui/preferences/components/README.md)
- [SystemUI Module](systemUI/README.md)
- [ViewCapture](systemUI/viewcapture/README.md)
- [Common](systemUI/common/README.md)
- [Prebuilt Library](prebuilts/libs/README.md)
#### Versioning scheme
### Development workflow
As of [#4361](https://github.com/LawnchairLauncher/lawnchair/pull/4361),
Lawnchairs version code is composed of four parts, separated by underscores:
We use a tiered workflow to balance development speed with stability. The process for merging a
change depends on its complexity and risk. All PRs should target the `15-dev` branch.
| Tier | Definition | Examples | Protocol |
|-----------------------------|-------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Trivial changes | Changes with zero risk of functional regression. | Fixing typos in comments or UI text (`docs`, `fix`), simple code style fixes (`style`). | Commit **directly** to the active branch. |
| Simple, self-contained work | Changes that are functionally isolated and have a very low risk of side effects. | Most single-file bug fixes, minor UX polish (padding, colors). | 1. Create a Pull Request.<br>2. Assign a reviewer.<br>3. Enable **"Auto-merge"** on the PR. It will merge automatically after CI passes and a reviewer approves. |
| Medium complexity features | New features or changes that affect multiple components but are not deeply architectural. | A new settings screen, a new drawer search provider | 1. Create a detailed Pull Request.<br>2. Assign the core team for review. |
| Major architectural changes | High-risk, complex changes that affect the core foundation of the app. | Android version rebase | 1. Create a very detailed Pull Request.<br>2. **Mandatory Review:** You **must** wait for at least one formal approval from a key team member before merging. The "Merge on Silence" rule does not apply. |
### Commit message convention
We follow the **[Conventional Commits specification][conventional-commits]**.
* **Format:** `type(scope): subject`
* **Example:** `feat(settings): Add toggle for new feature`
* **Allowed Types:** `feat`, `fix`, `style`, `refactor`, `perf`, `docs`, `test`, `chore`.
### Versioning scheme
As of Lawnchair 15 Beta 1, Lawnchairs version code is composed of four parts, separated by
underscores:
<p align="center">
<picture>
@@ -84,28 +104,29 @@ Lawnchairs version code is composed of four parts, separated by underscores:
3. Lawnchair development status
4. Lawnchair development version
##### Android major & minor versions
#### Android major & minor versions
These represent the Android version in which Lawnchair is based on.
They make up the first two parts of the version code:
- Major version: Indicates the main Android version.
- Minor version: Reflects any point release or update within the major version.
- Major version: Indicates the main Android version.
- Minor version: Reflects any point release or update within the major version.
Example: Android 11 will be `11_00_XX_XX` while Android 12.1 will be `12_01_XX_XX`.
##### Development status & version
#### Development status & version
The third and fourth parts of the version code refer to Lawnchair's development stage
and the specific version within that stage:
- Development status: Shows the current development stage of the Lawnchair build (e.g., Alpha, Beta).
- Development version: Specifies the incremental version within the same development stage.
- Development status: Shows the current development stage of the Lawnchair build (e.g., Alpha,
Beta).
- Development version: Specifies the incremental version within the same development stage.
The table below shows release phase used by Lawnchair:
| Status | Stage |
| ----------------- | ----- |
|-------------------|-------|
| Development | 00 |
| Alpha | 01 |
| Beta | 02 |
@@ -114,12 +135,12 @@ The table below shows release phase used by Lawnchair:
Example: Alpha 5 will be `XX_XX_01_05` and Beta 3 will be `XX_XX_02_03`.
#### String naming
### String naming
Strings `names` in `strings.xml` should follow this format:
| Type | Format | Example usage | Actual string | Other information |
| ------------------------------------------------ | ----------------- | -------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------- |
|--------------------------------------------------|-------------------|----------------------------|----------------------|---------------------------------------------------------------------------------------------------------------------|
| Generic word | $1 | `disagree_or_agree` | Disagree or agree | Should only be used if it doesn't fit the below categories |
| Action | $1_action | `apply_action` | Apply | Any generic action verb can fit here |
| Preference or popup label<br/>Preference headers | $1_label | `folders_label` | Folders | |
@@ -128,11 +149,30 @@ Strings `names` in `strings.xml` should follow this format:
| Feature string | (feature_name)_$1 | `colorpicker_hsb` | HSB | Feature strings are strings that are confined to a specific feature. Examples include the gesture and color picker. |
| Launcher string | $1_launcher | `device_contacts_launcher` | Contacts from device | Strings that are specific to the Launcher area |
#### Updating locally stored font listing
### Updating locally stored font listing
Lawnchair uses a locally stored JSON file (`google_fonts.json`) to list available fonts from Google Fonts. This file should be updated periodically or before release to include the latest fonts.
Lawnchair uses a locally stored JSON file (`google_fonts.json`) to list available fonts from Google
Fonts. This file should be updated periodically or before release to include the latest fonts.
To update Lawnchair's font listing, follow these steps:
1. Acquire a [Google Fonts Developer API key](https://developers.google.com/fonts/docs/developer_api#APIKey).
2. Download the JSON file from `https://www.googleapis.com/webfonts/v1/webfonts?key=API_KEY`, replacing `API_KEY` with the API key from step 1.
3. Replace the content of [`google_fonts.json`](lawnchair/assets/google_fonts.json) with the API response.
1. Acquire
a [Google Fonts Developer API key][google-fonts-api-key].
2. Download the JSON file from `https://www.googleapis.com/webfonts/v1/webfonts?key=API_KEY`,
replacing `API_KEY` with the API key from step 1.
3. Replace the content of [`google_fonts.json`](lawnchair/assets/google_fonts.json) with the API
response.
<!-- Links -->
[telegram]: https://t.me/lccommunity
[discord]: https://discord.com/invite/3x8qNWxgGZ
[nightly]: https://github.com/LawnchairLauncher/lawnchair/releases/tag/nightly
[bug-reports]: https://github.com/LawnchairLauncher/lawnchair/issues/new?assignees=&labels=bug&projects=&template=bug_report.yaml&title=%5BBUG%5D+
[feature-requests]: https://github.com/LawnchairLauncher/lawnchair/issues/new?assignees=&labels=feature%2Cenhancement&projects=&template=feature_request.yaml&title=%5BFEATURE%5D+
[code-of-conduct]: CODE_OF_CONDUCT.md
[crowdin]: https://lawnchair.crowdin.com
[kotlin-coding-conventions]: https://kotlinlang.org/docs/coding-conventions.html
[lawnchair-package]: https://github.com/LawnchairLauncher/lawnchair/tree/15-dev/lawnchair
[src-package]: https://github.com/LawnchairLauncher/lawnchair/tree/15-dev/src
[conventional-commits]: https://www.conventionalcommits.org/en/v1.0.0/
[google-fonts-api-key]: https://developers.google.com/fonts/docs/developer_api#APIKey

View File

@@ -90,6 +90,17 @@ Verify the integrity of your Lawnchair download using these SHA-256 hashes:
Please visit the [Lawnchair Contributing Guidelines](CONTRIBUTING.md) for information and tips on contributing to Lawnchair.
## Supporting Lawnchair
If you love what we do, consider [supporting us on Open Collective](https://opencollective.com/lawnchair)! Your contributions help keep Lawnchair independent and enable us to develop faster.
A huge thank you to our **Core Backers ($5+)**:
*(These backers directly fund our Project Velocity Fund)*
[![Core Backers](https://opencollective.com/lawnchair/tiers/backer.svg?avatarHeight=64&width=890&button=false)](https://opencollective.com/lawnchair)
[Become a supporter](https://opencollective.com/lawnchair) to help us cover our operational costs, or become a Core Backer to be featured here!
## Quick links
- [Website](https://lawnchair.app)

52
ROADMAP.md Normal file
View File

@@ -0,0 +1,52 @@
# Lawnchair development roadmap
This document outlines our high-level strategic priorities. It's a living document, not a set of
unbreakable promises. For the status of individual tasks, see
our [GitHub Issue Tracker](https://github.com/LawnchairLauncher/lawnchair/issues) and our
team's [Kanban board](https://github.com/orgs/LawnchairLauncher/projects/9/views/1).
## Vision
Lawnchair's goal is to be:
* **Simple:** Match the core Pixel Launcher experience.
* **Powerful:** Offer deep, meaningful customization.
* **Stable:** Provide a rock-solid, reliable foundation.
## Roadmap
### Recently completed
- **Shipped:** `15 Beta 1` to GitHub & Play Store.
- **Completed:** A full architectural overhaul of the Search and Permissions systems.
### Current focus
This is our active development sprint. The goal is to address key bugs and deliver a highly polished
user experience.
- UI/UX overhaul of all Settings screens to Material 3 Expressive.
### Up next
Once the UX overhaul is stable, our focus will shift to delivering highly-requested features that
enhance
customization and control.
- Proper icon swipe gestures
- Folder "cover" mode
- App drawer tabs
### The Android 16 rebase
This is the massive, foundational undertaking to migrate our codebase to the latest Android 16
(AOSP) source. Its completion will be the foundation for our **Lawnchair 16** release.
**Status:** Actively in progress, led by a core community contributor.
### Long term or blocked
Highly-requested features that are blocked by external dependencies or require significant research.
- **Widget Stacking:** A highly complex feature requiring deep architectural investigation.
- **QuickSwitch Stability:** An ongoing effort to mitigate upstream AOSP/OEM bugs.

View File

@@ -2,9 +2,12 @@
This directory lists all the decoration & visual explainers used in the Lawnchair Documentation.
All assets created should use Material 3 design with `#47B84F` as source color and the [Inter](https://fonts.google.com/specimen/Inter) ([OFL v1.1](https://github.com/rsms/inter/?tab=OFL-1.1-1-ov-file#readme)) typography. Visit the [Material 3 theme builder](https://material-foundation.github.io/material-theme-builder/?primary=%2347B84F&bodyFont=Inter&displayFont=Inter&colorMatch=false) for more information, and [the CSS directory](css/) for an example color scheme for the web.
All assets created should use Material 3 design with `#47B84F` as source color and
the [Inter](https://fonts.google.com/specimen/Inter) ([OFL v1.1](https://github.com/rsms/inter/?tab=OFL-1.1-1-ov-file#readme))
typography. Visit the [Material 3 theme builder][material-theme-builder] for more information.
When creating device mockups for Lawnchair, make sure that you're using the latest commits of Lawnchair or use Lawnchair Nightly as base.
When creating device mockups for Lawnchair, make sure that you're using the latest commits of
Lawnchair or use Lawnchair Nightly as base.
## Device Mockup
@@ -14,3 +17,5 @@ Use in: [README](/README.md)
* Wallpaper: https://unsplash.com/photos/photography-of-green-leaves-ZVKr8wADhpc
* Color Extraction Technique: Tonal Spot from Lawnchair
* License: https://unsplash.com/license
[material-theme-builder]: https://material-foundation.github.io/material-theme-builder/?primary=%2347B84F&bodyFont=Inter&displayFont=Inter&colorMatch=false

View File

@@ -1,55 +0,0 @@
.dark-high-contrast {
--md-sys-color-primary: rgb(240 255 237);
--md-sys-color-surface-tint: rgb(155 212 160);
--md-sys-color-on-primary: rgb(0 0 0);
--md-sys-color-primary-container: rgb(159 216 164);
--md-sys-color-on-primary-container: rgb(0 0 0);
--md-sys-color-secondary: rgb(240 255 237);
--md-sys-color-on-secondary: rgb(0 0 0);
--md-sys-color-secondary-container: rgb(188 208 186);
--md-sys-color-on-secondary-container: rgb(0 0 0);
--md-sys-color-tertiary: rgb(242 253 255);
--md-sys-color-on-tertiary: rgb(0 0 0);
--md-sys-color-tertiary-container: rgb(165 210 219);
--md-sys-color-on-tertiary-container: rgb(0 0 0);
--md-sys-color-error: rgb(255 249 249);
--md-sys-color-on-error: rgb(0 0 0);
--md-sys-color-error-container: rgb(255 186 177);
--md-sys-color-on-error-container: rgb(0 0 0);
--md-sys-color-background: rgb(16 21 16);
--md-sys-color-on-background: rgb(224 228 220);
--md-sys-color-surface: rgb(16 21 16);
--md-sys-color-on-surface: rgb(255 255 255);
--md-sys-color-surface-variant: rgb(65 73 65);
--md-sys-color-on-surface-variant: rgb(246 253 241);
--md-sys-color-outline: rgb(197 205 194);
--md-sys-color-outline-variant: rgb(197 205 194);
--md-sys-color-shadow: rgb(0 0 0);
--md-sys-color-scrim: rgb(0 0 0);
--md-sys-color-inverse-surface: rgb(224 228 220);
--md-sys-color-inverse-on-surface: rgb(0 0 0);
--md-sys-color-inverse-primary: rgb(0 50 18);
--md-sys-color-primary-fixed: rgb(187 245 191);
--md-sys-color-on-primary-fixed: rgb(0 0 0);
--md-sys-color-primary-fixed-dim: rgb(159 216 164);
--md-sys-color-on-primary-fixed-variant: rgb(0 27 7);
--md-sys-color-secondary-fixed: rgb(216 236 213);
--md-sys-color-on-secondary-fixed: rgb(0 0 0);
--md-sys-color-secondary-fixed-dim: rgb(188 208 186);
--md-sys-color-on-secondary-fixed-variant: rgb(9 26 12);
--md-sys-color-tertiary-fixed: rgb(193 239 248);
--md-sys-color-on-tertiary-fixed: rgb(0 0 0);
--md-sys-color-tertiary-fixed-dim: rgb(165 210 219);
--md-sys-color-on-tertiary-fixed-variant: rgb(0 26 30);
--md-sys-color-surface-dim: rgb(16 21 16);
--md-sys-color-surface-bright: rgb(54 58 53);
--md-sys-color-surface-container-lowest: rgb(11 15 11);
--md-sys-color-surface-container-low: rgb(24 29 24);
--md-sys-color-surface-container: rgb(28 33 28);
--md-sys-color-surface-container-high: rgb(38 43 38);
--md-sys-color-surface-container-highest: rgb(49 54 48);
--md-extended-color-custom-color1-color: rgb(255 249 248);
--md-extended-color-custom-color1-on-color: rgb(0 0 0);
--md-extended-color-custom-color1-color-container: rgb(255 188 156);
--md-extended-color-custom-color1-on-color-container: rgb(0 0 0);
}

View File

@@ -1,55 +0,0 @@
.dark-medium-contrast {
--md-sys-color-primary: rgb(159 216 164);
--md-sys-color-surface-tint: rgb(155 212 160);
--md-sys-color-on-primary: rgb(0 27 7);
--md-sys-color-primary-container: rgb(103 157 110);
--md-sys-color-on-primary-container: rgb(0 0 0);
--md-sys-color-secondary: rgb(188 208 186);
--md-sys-color-on-secondary: rgb(9 26 12);
--md-sys-color-secondary-container: rgb(130 150 130);
--md-sys-color-on-secondary-container: rgb(0 0 0);
--md-sys-color-tertiary: rgb(165 210 219);
--md-sys-color-on-tertiary: rgb(0 26 30);
--md-sys-color-tertiary-container: rgb(108 152 160);
--md-sys-color-on-tertiary-container: rgb(0 0 0);
--md-sys-color-error: rgb(255 186 177);
--md-sys-color-on-error: rgb(55 0 1);
--md-sys-color-error-container: rgb(255 84 73);
--md-sys-color-on-error-container: rgb(0 0 0);
--md-sys-color-background: rgb(16 21 16);
--md-sys-color-on-background: rgb(224 228 220);
--md-sys-color-surface: rgb(16 21 16);
--md-sys-color-on-surface: rgb(248 252 244);
--md-sys-color-surface-variant: rgb(65 73 65);
--md-sys-color-on-surface-variant: rgb(197 205 194);
--md-sys-color-outline: rgb(157 165 155);
--md-sys-color-outline-variant: rgb(126 133 124);
--md-sys-color-shadow: rgb(0 0 0);
--md-sys-color-scrim: rgb(0 0 0);
--md-sys-color-inverse-surface: rgb(224 228 220);
--md-sys-color-inverse-on-surface: rgb(38 43 38);
--md-sys-color-inverse-primary: rgb(29 82 42);
--md-sys-color-primary-fixed: rgb(182 241 187);
--md-sys-color-on-primary-fixed: rgb(0 21 5);
--md-sys-color-primary-fixed-dim: rgb(155 212 160);
--md-sys-color-on-primary-fixed-variant: rgb(5 63 26);
--md-sys-color-secondary-fixed: rgb(211 232 209);
--md-sys-color-on-secondary-fixed: rgb(5 20 8);
--md-sys-color-secondary-fixed-dim: rgb(184 204 182);
--md-sys-color-on-secondary-fixed-variant: rgb(41 58 42);
--md-sys-color-tertiary-fixed: rgb(189 234 244);
--md-sys-color-on-tertiary-fixed: rgb(0 20 24);
--md-sys-color-tertiary-fixed-dim: rgb(161 206 215);
--md-sys-color-on-tertiary-fixed-variant: rgb(9 60 67);
--md-sys-color-surface-dim: rgb(16 21 16);
--md-sys-color-surface-bright: rgb(54 58 53);
--md-sys-color-surface-container-lowest: rgb(11 15 11);
--md-sys-color-surface-container-low: rgb(24 29 24);
--md-sys-color-surface-container: rgb(28 33 28);
--md-sys-color-surface-container-high: rgb(38 43 38);
--md-sys-color-surface-container-highest: rgb(49 54 48);
--md-extended-color-custom-color1-color: rgb(255 188 156);
--md-extended-color-custom-color1-on-color: rgb(44 13 0);
--md-extended-color-custom-color1-color-container: rgb(201 126 89);
--md-extended-color-custom-color1-on-color-container: rgb(0 0 0);
}

View File

@@ -1,55 +0,0 @@
.dark {
--md-sys-color-primary: rgb(155 212 160);
--md-sys-color-surface-tint: rgb(155 212 160);
--md-sys-color-on-primary: rgb(0 57 21);
--md-sys-color-primary-container: rgb(27 81 41);
--md-sys-color-on-primary-container: rgb(182 241 187);
--md-sys-color-secondary: rgb(184 204 182);
--md-sys-color-on-secondary: rgb(35 52 37);
--md-sys-color-secondary-container: rgb(57 75 58);
--md-sys-color-on-secondary-container: rgb(211 232 209);
--md-sys-color-tertiary: rgb(161 206 215);
--md-sys-color-on-tertiary: rgb(0 54 62);
--md-sys-color-tertiary-container: rgb(31 77 85);
--md-sys-color-on-tertiary-container: rgb(189 234 244);
--md-sys-color-error: rgb(255 180 171);
--md-sys-color-on-error: rgb(105 0 5);
--md-sys-color-error-container: rgb(147 0 10);
--md-sys-color-on-error-container: rgb(255 218 214);
--md-sys-color-background: rgb(16 21 16);
--md-sys-color-on-background: rgb(224 228 220);
--md-sys-color-surface: rgb(16 21 16);
--md-sys-color-on-surface: rgb(224 228 220);
--md-sys-color-surface-variant: rgb(65 73 65);
--md-sys-color-on-surface-variant: rgb(193 201 190);
--md-sys-color-outline: rgb(139 147 137);
--md-sys-color-outline-variant: rgb(65 73 65);
--md-sys-color-shadow: rgb(0 0 0);
--md-sys-color-scrim: rgb(0 0 0);
--md-sys-color-inverse-surface: rgb(224 228 220);
--md-sys-color-inverse-on-surface: rgb(45 50 44);
--md-sys-color-inverse-primary: rgb(53 105 63);
--md-sys-color-primary-fixed: rgb(182 241 187);
--md-sys-color-on-primary-fixed: rgb(0 33 9);
--md-sys-color-primary-fixed-dim: rgb(155 212 160);
--md-sys-color-on-primary-fixed-variant: rgb(27 81 41);
--md-sys-color-secondary-fixed: rgb(211 232 209);
--md-sys-color-on-secondary-fixed: rgb(15 31 17);
--md-sys-color-secondary-fixed-dim: rgb(184 204 182);
--md-sys-color-on-secondary-fixed-variant: rgb(57 75 58);
--md-sys-color-tertiary-fixed: rgb(189 234 244);
--md-sys-color-on-tertiary-fixed: rgb(0 31 36);
--md-sys-color-tertiary-fixed-dim: rgb(161 206 215);
--md-sys-color-on-tertiary-fixed-variant: rgb(31 77 85);
--md-sys-color-surface-dim: rgb(16 21 16);
--md-sys-color-surface-bright: rgb(54 58 53);
--md-sys-color-surface-container-lowest: rgb(11 15 11);
--md-sys-color-surface-container-low: rgb(24 29 24);
--md-sys-color-surface-container: rgb(28 33 28);
--md-sys-color-surface-container-high: rgb(38 43 38);
--md-sys-color-surface-container-highest: rgb(49 54 48);
--md-extended-color-custom-color1-color: rgb(255 182 146);
--md-extended-color-custom-color1-on-color: rgb(84 33 3);
--md-extended-color-custom-color1-color-container: rgb(112 55 23);
--md-extended-color-custom-color1-on-color-container: rgb(255 219 203);
}

View File

@@ -1,55 +0,0 @@
.light-high-contrast {
--md-sys-color-primary: rgb(0 41 13);
--md-sys-color-surface-tint: rgb(53 105 63);
--md-sys-color-on-primary: rgb(255 255 255);
--md-sys-color-primary-container: rgb(23 77 37);
--md-sys-color-on-primary-container: rgb(255 255 255);
--md-sys-color-secondary: rgb(21 38 23);
--md-sys-color-on-secondary: rgb(255 255 255);
--md-sys-color-secondary-container: rgb(54 71 55);
--md-sys-color-on-secondary-container: rgb(255 255 255);
--md-sys-color-tertiary: rgb(0 39 44);
--md-sys-color-on-tertiary: rgb(255 255 255);
--md-sys-color-tertiary-container: rgb(27 73 81);
--md-sys-color-on-tertiary-container: rgb(255 255 255);
--md-sys-color-error: rgb(78 0 2);
--md-sys-color-on-error: rgb(255 255 255);
--md-sys-color-error-container: rgb(140 0 9);
--md-sys-color-on-error-container: rgb(255 255 255);
--md-sys-color-background: rgb(247 251 242);
--md-sys-color-on-background: rgb(24 29 24);
--md-sys-color-surface: rgb(247 251 242);
--md-sys-color-on-surface: rgb(0 0 0);
--md-sys-color-surface-variant: rgb(221 229 218);
--md-sys-color-on-surface-variant: rgb(31 38 31);
--md-sys-color-outline: rgb(62 69 61);
--md-sys-color-outline-variant: rgb(62 69 61);
--md-sys-color-shadow: rgb(0 0 0);
--md-sys-color-scrim: rgb(0 0 0);
--md-sys-color-inverse-surface: rgb(45 50 44);
--md-sys-color-inverse-on-surface: rgb(255 255 255);
--md-sys-color-inverse-primary: rgb(192 250 196);
--md-sys-color-primary-fixed: rgb(23 77 37);
--md-sys-color-on-primary-fixed: rgb(255 255 255);
--md-sys-color-primary-fixed-dim: rgb(0 53 19);
--md-sys-color-on-primary-fixed-variant: rgb(255 255 255);
--md-sys-color-secondary-fixed: rgb(54 71 55);
--md-sys-color-on-secondary-fixed: rgb(255 255 255);
--md-sys-color-secondary-fixed-dim: rgb(32 49 33);
--md-sys-color-on-secondary-fixed-variant: rgb(255 255 255);
--md-sys-color-tertiary-fixed: rgb(27 73 81);
--md-sys-color-on-tertiary-fixed: rgb(255 255 255);
--md-sys-color-tertiary-fixed-dim: rgb(0 50 57);
--md-sys-color-on-tertiary-fixed-variant: rgb(255 255 255);
--md-sys-color-surface-dim: rgb(215 219 211);
--md-sys-color-surface-bright: rgb(247 251 242);
--md-sys-color-surface-container-lowest: rgb(255 255 255);
--md-sys-color-surface-container-low: rgb(241 245 236);
--md-sys-color-surface-container: rgb(235 239 231);
--md-sys-color-surface-container-high: rgb(229 233 225);
--md-sys-color-surface-container-highest: rgb(224 228 220);
--md-extended-color-custom-color1-color: rgb(63 21 0);
--md-extended-color-custom-color1-on-color: rgb(255 255 255);
--md-extended-color-custom-color1-color-container: rgb(107 51 20);
--md-extended-color-custom-color1-on-color-container: rgb(255 255 255);
}

View File

@@ -1,55 +0,0 @@
.light-medium-contrast {
--md-sys-color-primary: rgb(23 77 37);
--md-sys-color-surface-tint: rgb(53 105 63);
--md-sys-color-on-primary: rgb(255 255 255);
--md-sys-color-primary-container: rgb(75 128 83);
--md-sys-color-on-primary-container: rgb(255 255 255);
--md-sys-color-secondary: rgb(54 71 55);
--md-sys-color-on-secondary: rgb(255 255 255);
--md-sys-color-secondary-container: rgb(103 121 102);
--md-sys-color-on-secondary-container: rgb(255 255 255);
--md-sys-color-tertiary: rgb(27 73 81);
--md-sys-color-on-tertiary: rgb(255 255 255);
--md-sys-color-tertiary-container: rgb(80 123 132);
--md-sys-color-on-tertiary-container: rgb(255 255 255);
--md-sys-color-error: rgb(140 0 9);
--md-sys-color-on-error: rgb(255 255 255);
--md-sys-color-error-container: rgb(218 52 46);
--md-sys-color-on-error-container: rgb(255 255 255);
--md-sys-color-background: rgb(247 251 242);
--md-sys-color-on-background: rgb(24 29 24);
--md-sys-color-surface: rgb(247 251 242);
--md-sys-color-on-surface: rgb(24 29 24);
--md-sys-color-surface-variant: rgb(221 229 218);
--md-sys-color-on-surface-variant: rgb(62 69 61);
--md-sys-color-outline: rgb(90 97 88);
--md-sys-color-outline-variant: rgb(117 125 116);
--md-sys-color-shadow: rgb(0 0 0);
--md-sys-color-scrim: rgb(0 0 0);
--md-sys-color-inverse-surface: rgb(45 50 44);
--md-sys-color-inverse-on-surface: rgb(238 242 234);
--md-sys-color-inverse-primary: rgb(155 212 160);
--md-sys-color-primary-fixed: rgb(75 128 83);
--md-sys-color-on-primary-fixed: rgb(255 255 255);
--md-sys-color-primary-fixed-dim: rgb(50 103 61);
--md-sys-color-on-primary-fixed-variant: rgb(255 255 255);
--md-sys-color-secondary-fixed: rgb(103 121 102);
--md-sys-color-on-secondary-fixed: rgb(255 255 255);
--md-sys-color-secondary-fixed-dim: rgb(78 97 79);
--md-sys-color-on-secondary-fixed-variant: rgb(255 255 255);
--md-sys-color-tertiary-fixed: rgb(80 123 132);
--md-sys-color-on-tertiary-fixed: rgb(255 255 255);
--md-sys-color-tertiary-fixed-dim: rgb(55 98 106);
--md-sys-color-on-tertiary-fixed-variant: rgb(255 255 255);
--md-sys-color-surface-dim: rgb(215 219 211);
--md-sys-color-surface-bright: rgb(247 251 242);
--md-sys-color-surface-container-lowest: rgb(255 255 255);
--md-sys-color-surface-container-low: rgb(241 245 236);
--md-sys-color-surface-container: rgb(235 239 231);
--md-sys-color-surface-container-high: rgb(229 233 225);
--md-sys-color-surface-container-highest: rgb(224 228 220);
--md-extended-color-custom-color1-color: rgb(107 51 20);
--md-extended-color-custom-color1-on-color: rgb(255 255 255);
--md-extended-color-custom-color1-color-container: rgb(168 99 64);
--md-extended-color-custom-color1-on-color-container: rgb(255 255 255);
}

View File

@@ -1,55 +0,0 @@
.light {
--md-sys-color-primary: rgb(53 105 63);
--md-sys-color-surface-tint: rgb(53 105 63);
--md-sys-color-on-primary: rgb(255 255 255);
--md-sys-color-primary-container: rgb(182 241 187);
--md-sys-color-on-primary-container: rgb(0 33 9);
--md-sys-color-secondary: rgb(81 99 81);
--md-sys-color-on-secondary: rgb(255 255 255);
--md-sys-color-secondary-container: rgb(211 232 209);
--md-sys-color-on-secondary-container: rgb(15 31 17);
--md-sys-color-tertiary: rgb(57 101 109);
--md-sys-color-on-tertiary: rgb(255 255 255);
--md-sys-color-tertiary-container: rgb(189 234 244);
--md-sys-color-on-tertiary-container: rgb(0 31 36);
--md-sys-color-error: rgb(186 26 26);
--md-sys-color-on-error: rgb(255 255 255);
--md-sys-color-error-container: rgb(255 218 214);
--md-sys-color-on-error-container: rgb(65 0 2);
--md-sys-color-background: rgb(247 251 242);
--md-sys-color-on-background: rgb(24 29 24);
--md-sys-color-surface: rgb(247 251 242);
--md-sys-color-on-surface: rgb(24 29 24);
--md-sys-color-surface-variant: rgb(221 229 218);
--md-sys-color-on-surface-variant: rgb(65 73 65);
--md-sys-color-outline: rgb(114 121 112);
--md-sys-color-outline-variant: rgb(193 201 190);
--md-sys-color-shadow: rgb(0 0 0);
--md-sys-color-scrim: rgb(0 0 0);
--md-sys-color-inverse-surface: rgb(45 50 44);
--md-sys-color-inverse-on-surface: rgb(238 242 234);
--md-sys-color-inverse-primary: rgb(155 212 160);
--md-sys-color-primary-fixed: rgb(182 241 187);
--md-sys-color-on-primary-fixed: rgb(0 33 9);
--md-sys-color-primary-fixed-dim: rgb(155 212 160);
--md-sys-color-on-primary-fixed-variant: rgb(27 81 41);
--md-sys-color-secondary-fixed: rgb(211 232 209);
--md-sys-color-on-secondary-fixed: rgb(15 31 17);
--md-sys-color-secondary-fixed-dim: rgb(184 204 182);
--md-sys-color-on-secondary-fixed-variant: rgb(57 75 58);
--md-sys-color-tertiary-fixed: rgb(189 234 244);
--md-sys-color-on-tertiary-fixed: rgb(0 31 36);
--md-sys-color-tertiary-fixed-dim: rgb(161 206 215);
--md-sys-color-on-tertiary-fixed-variant: rgb(31 77 85);
--md-sys-color-surface-dim: rgb(215 219 211);
--md-sys-color-surface-bright: rgb(247 251 242);
--md-sys-color-surface-container-lowest: rgb(255 255 255);
--md-sys-color-surface-container-low: rgb(241 245 236);
--md-sys-color-surface-container: rgb(235 239 231);
--md-sys-color-surface-container-high: rgb(229 233 225);
--md-sys-color-surface-container-highest: rgb(224 228 220);
--md-extended-color-custom-color1-color: rgb(141 78 44);
--md-extended-color-custom-color1-on-color: rgb(255 255 255);
--md-extended-color-custom-color1-color-container: rgb(255 219 203);
--md-extended-color-custom-color1-on-color-container: rgb(52 16 0);
}