anki/qt/aqt
Matthias Metelka 8142176f84
Introduce new color palette using Sass maps (#2016)
* Remove --medium-border variable

* Implement color palette using Sass maps

I hand-picked the gray tones, the other colors are from the Tailwind CSS v3 palette.

Significant changes:
- light theme is brighter
- dark theme is darker
- borders are softer

I also deleted some platform- and night-mode-specific code.

* Use custom colors for note view switch

* Use same placeholder color for all inputs

* Skew color palette for more dark values

by removing gray[3], which wasn't used anywhere. Slight adjustments were made to the darker tones.

* Adjust frame- window- and border colors

* Give deck browser entries --frame-bg as background color

* Define styling for QComboBox and QLineEdit globally

* Experiment with CSS filter for inline-colors

Inside darker inputs, some colors like dark blue will be hard to read, so we could try to improve text-color contrast with global adjustments depending on the theme.

* Use different map structure for _vars.scss

after @hgiesel's idea: https://github.com/ankitects/anki/pull/2016#discussion_r947087871

* Move custom QLineEdit styles out of searchbar.py

* Merge branch 'main' into color-palette

* Revert QComboBox stylesheet override

* Align gray color palette more with macOS

* Adjust light theme

* Use --slightly-grey-text for options tab color

* Replace gray tones with more neutral values

* Improve categorization of global colors

by renaming almost all of them and sorting them into separate maps.

* Saturate highlight-bg in light theme

* Tweak gray tones

* Adjust box-shadow of EditingArea to make fields look inset

* Add Sass functions to access color palette and semantic variables

in response to https://github.com/ankitects/anki/pull/2016#issuecomment-1220571076

* Showcase use of access functions in several locations

@hgiesel in buttons.scss I access the color palette directly. Is this what you meant by "... keep it local to the component, and possibly make it global at a later time ..."?

* Fix focus box shadow transition and remove default shadow for a cleaner look

I couldn't quite get the inset look the way I wanted, because inset box-shadows do not respect the border radius, therefore causing aliasing.

* Tweak light theme border and shadow colors

* Add functions and colors to base_lib

* Add vars_lib as dependency to base_lib and button_mixins_lib

* Improve uses of default-themed variables

* Use old --frame-bg color and use darker tone for canvas-default

* Return CSS var by default and add palette-of function for raw value

* Showcase use of palette-of function

The #{...} syntax is required only because the use cases are CSS var definitions. In other cases a simple palette-of(keyword, theme) would suffice.

* Light theme: decrease brightness of canvas-default and adjust fg-default

* Use canvas-inset variable for switch knob

* Adjust light theme

* Add back box-shadow to EditingArea

* Light theme: darken background and flatten transition

also set hue and saturation of gray-8 to 0 (like all the other grays).

* Reduce flag colors to single default value

* Tweak card/note accent colors

* Experiment with inset look for fields again

Is this too dark in night mode? It's the same color used for all other text inputs.

* Dark theme: make border-default one shade darker

* Tweak inset shadow color

* Dark theme: make border-faint darker than canvas-default

meaning two shades darker than it currently was.

* Fix PlainTextInput not expanding

* Dark theme: use less saturated flag colors

* Adjust gray tones

* Fix nested variables not getting extracted correctly

* Rename canvas-outset to canvas-elevated

* Light theme: darken canvas-default

* Make canvas-elevated a bit darker

* Rename variables and use them in various components

* Refactor button mixins

* Remove fusion vars from Anki

* Adjust button gradients

* Refactor button mixins

* Fix deck browser table td background color

* Use color function in buttons.scss

* Rework QTabWidget stylesheet

* Fix crash on browser open

* Perfect QTableView header

* Fix bottom toolbar button gradient

* Fix focus outline of bottom toolbar buttons

* Fix custom webview scrollbar

* Fix uses of vars in various webviews

The command @use vars as * lead to repeated inclusion of the CSS vars.

* Enable primary button color with mixin

* Run prettier

* Fix Python code style issues

* Tweak colors

* Lighten scrollbar shades in light theme

* Fix code style issues caused by merge

* Fix harsh border color in editor

caused by leftover --medium-border variables, probably introduced with a merge commit.

* Compile Sass before extracting Python colors/props

This means the Python side doesn't need to worry about the map structure and Sass functions, just copy the output CSS values.

* Desaturate primary button colors by 10%

* Convert accidentally capitalized variable names to lowercase

* Simplify color definitions with qcolor function

* Remove default border-focus variable

* Remove redundant colon

* Apply custom scrollbar CSS only on Windows and Linux

* Make border-subtle color brighter than background in dark theme

* Make border-subtle color a shade brighter in light theme

* Use border-subtle for NoteEditor and EditorToolbar border

* Small patches
2022-09-16 14:11:18 +10:00
..
browser Introduce new color palette using Sass maps (#2016) 2022-09-16 14:11:18 +10:00
data Introduce new color palette using Sass maps (#2016) 2022-09-16 14:11:18 +10:00
forms Add animation toggle to preferences (#2041) 2022-09-03 12:14:47 +10:00
import_export Introduce exporters_list_created hook to new export code (#1978) 2022-07-22 19:33:07 +10:00
operations Remember previous choices in reposition dialog (#1950) 2022-07-08 11:28:38 +10:00
qt Fix custom browser font not being honored 2022-04-21 13:28:22 +10:00
__init__.py Redesign Qt widgets with stylesheets (#2050) 2022-09-08 20:44:38 +10:00
_macos_helper.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
about.py Fix issue #1114 by scrolling the user to the top of the page (#1810) 2022-04-19 15:39:32 +10:00
addcards.py add shortcut to close addcards window (#2031) 2022-08-31 20:09:09 +10:00
addons.py Add MessageBox class and associated funcs to aqt.utils and update the first few callers (#2010) 2022-08-19 10:04:58 +10:00
BUILD.bazel Introduce new color palette using Sass maps (#2016) 2022-09-16 14:11:18 +10:00
changenotetype.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
clayout.py More template checks (#2032) 2022-09-05 16:52:25 +10:00
colors.py fix generated code symlinks again 2022-01-24 16:59:37 +10:00
customstudy.py Rework display of available cards in custom study 2022-05-20 17:52:02 +10:00
dbcheck.py Backup improvements (#1728) 2022-03-21 19:40:42 +10:00
deckbrowser.py Remove .exec() from QMenus in Deck Browser, Reviewer, and Card Template screens (#1674) 2022-02-18 17:18:29 +10:00
deckchooser.py Make dialogs non-blocking (#1650) 2022-02-10 09:53:13 +10:00
deckconf.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
deckdescription.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
deckoptions.py Remove .exec() from QMenus in Deck Browser, Reviewer, and Card Template screens (#1674) 2022-02-18 17:18:29 +10:00
editcurrent.py PEP8 editorMode 2022-01-12 15:01:43 +10:00
editor.py Introduce new color palette using Sass maps (#2016) 2022-09-16 14:11:18 +10:00
emptycards.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
errors.py Ensure only the first fatal error is shown 2022-08-01 19:38:46 +10:00
exporting.py Add deck/collection export hooks (#1971) 2022-07-22 12:45:47 +10:00
fields.py Introduce setting to collapse field by default (#1990) 2022-08-31 23:34:39 +10:00
filtered_deck.py Introduce new color palette using Sass maps (#2016) 2022-09-16 14:11:18 +10:00
flags.py Introduce new color palette using Sass maps (#2016) 2022-09-16 14:11:18 +10:00
gui_hooks.py fix qt/ pylints 2021-01-07 16:21:50 +10:00
hooks_gen.py fix generated code symlinks again 2022-01-24 16:59:37 +10:00
importing.py Plaintext import/export (#1850) 2022-06-01 20:26:16 +10:00
legacy.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
main.py Add MainWindowState hints to more signatures (#2064) 2022-09-12 19:31:22 +10:00
mediacheck.py Add the media_check_did_finish hook (#1889) 2022-05-27 16:25:34 +10:00
mediasrv.py Enable state-dependent custom scheduling data (#2049) 2022-09-05 16:48:01 +10:00
mediasync.py Add progress.single_shot() (#1683) 2022-02-24 21:15:56 +10:00
modelchooser.py Add callback and non-blocking option to StudyDeck (#1643) 2022-02-07 22:05:59 +10:00
models.py Fix kwin hanging when adding new notetype 2022-06-03 11:23:41 +10:00
mpv.py update platform checks (eg isWin -> is_win) + devMode 2021-11-25 09:06:16 +10:00
notetypechooser.py Make dialogs non-blocking (#1650) 2022-02-10 09:53:13 +10:00
overview.py Add hook: overview_will_render_bottom (#1946) 2022-07-05 08:28:47 +10:00
package.py ignore a spurious mypy error 2021-10-28 19:19:37 +10:00
pinnedmodules.py update platform checks (eg isWin -> is_win) + devMode 2021-11-25 09:06:16 +10:00
preferences.py Add animation toggle to preferences (#2041) 2022-09-03 12:14:47 +10:00
profiles.py Redesign Qt widgets with stylesheets (#2050) 2022-09-08 20:44:38 +10:00
progress.py fix progress.update(value=0) to not increment progress (#1998) 2022-08-01 20:16:42 +10:00
py.typed mark anki and aqt modules as having typing info 2020-01-13 13:03:37 +10:00
reviewer.py Enable state-dependent custom scheduling data (#2049) 2022-09-05 16:48:01 +10:00
schema_change_tracker.py add a bunch of return types 2021-02-01 23:53:23 +10:00
sound.py Fix duplicate Anki icons appearing in dock 2022-05-26 11:05:36 +10:00
stats.py Fix issue #1114 by scrolling the user to the top of the page (#1810) 2022-04-19 15:39:32 +10:00
studydeck.py Fix new deck not being selected (#1681) 2022-02-22 21:51:23 +10:00
stylesheets.py Introduce new color palette using Sass maps (#2016) 2022-09-16 14:11:18 +10:00
switch.py Introduce new color palette using Sass maps (#2016) 2022-09-16 14:11:18 +10:00
sync.py Fix scheduler change not reflected after normal sync 2022-08-24 18:37:58 +10:00
tagedit.py switch to new-style PyQt scoped enums and Qt6 2021-10-15 12:57:19 +10:00
taglimit.py Move custom study tag and limit gathering+saving into the backend 2022-03-10 16:23:03 +10:00
taskman.py Add apkg import/export on backend (#1743) 2022-05-02 21:12:46 +10:00
theme.py Introduce new color palette using Sass maps (#2016) 2022-09-16 14:11:18 +10:00
toolbar.py fix line break in sync link in the toolbar (#2022) 2022-08-22 11:26:57 +10:00
tts.py Handle missing attributes in win32 tts code 2022-07-30 19:08:37 +10:00
undo.py fix redo menu item showing undo text 2021-08-04 10:28:45 +10:00
update.py change update link to point to download section (#2034) 2022-08-31 18:35:53 +10:00
utils.py add shortcut to close addcards window (#2031) 2022-08-31 20:09:09 +10:00
webview.py Introduce new color palette using Sass maps (#2016) 2022-09-16 14:11:18 +10:00
wheel_description.txt move aqt_data into source folder; implement wheel building 2020-11-04 12:14:03 +10:00
winpaths.py run pyupgrade over codebase [python upgrade required] 2021-10-04 15:05:48 +10:00