mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 07:16:54 +00:00
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:
162
CONTRIBUTING.md
162
CONTRIBUTING.md
@@ -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 project’s 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 Lawnchair’s 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 Lawnchair’s 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),
|
||||
Lawnchair’s 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, Lawnchair’s version code is composed of four parts, separated by
|
||||
underscores:
|
||||
|
||||
<p align="center">
|
||||
<picture>
|
||||
@@ -84,28 +104,29 @@ Lawnchair’s 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
|
||||
|
||||
11
README.md
11
README.md
@@ -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)*
|
||||
|
||||
[](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
52
ROADMAP.md
Normal 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.
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user