Commit graph

46 commits

Author SHA1 Message Date
Ashley Wulber
b8f9dc6cb0 refactor: introduce new palette colors for control tint
neutral colors will not be tinted anymore
2025-07-16 20:20:08 -04:00
Michael Aaron Murphy
8cf372c9b9
perf: inline public getters/setters, and use non-generic inner functions
To reduce compile-times and avoid some overhead to binary size, this will modify some of our
generic functions to use non-generic inner functions where possible. The inner functions are
marked carefully with `#[inline(never)]` to prevent being inlined by LLVM at their callsites

While looking for generic functions to optimize, I have also taken the opportunity to annotate
public non-generic getters and setters with `#[inline]` to ensure that LLVM will inline them
across crate boundaries. By default, only generic functions are automatically inlined, and
only when enabling fat LTO are constant functions reliably inlined across crate boundaries.
2025-03-21 13:31:34 +01:00
Ashley Wulber
508753ae69 feat: high contrast theme updates 2025-03-10 16:10:32 +01:00
Ashley Wulber
3f25af87a3 refactor: small widget container colors 2025-02-17 15:13:16 +01:00
Ashley Wulber
25bf8f60cc feat: improve accent_text for low contrast accent colors. 2025-02-17 15:13:16 +01:00
Vukašin Vojinović
478f3ead75 fix(palette): remove deprecated colors 2024-10-18 14:04:39 -04:00
Vukašin Vojinović
33c60ed87a fix(theme): update color palette 2024-10-18 14:04:39 -04:00
Vukašin Vojinović
8b37f658e2 fix(small_widget_divider): fix alpha value
This makes this color match the designs, and thus fixes the divider color in the horizontal `segmented_button`.
2024-10-08 17:09:26 -04:00
Vukašin Vojinović
e645dee2f0 fix(header_bar): increase compact height
Increases Compact header height to 40 (from 36), to better accommodate larger widgets (e.g. the search bar). This makes it distinct from the SSD header, which is now addressed by the `_` match case.
Also makes the horizontal header padding fixed at 8, so that the app window padding can also be 8.
2024-10-03 15:39:00 +02:00
Vukašin Vojinović
0a34660a80 fix: move density to cosmic_theme 2024-09-23 12:40:22 -04:00
Piotr
b15ae66ac8 fix: dont omit default preference for light theme 2024-08-26 04:14:35 +02:00
Eleven
084ce30478
feat(theme): GNOME sessions get dark theme preference from gsettings 2024-04-26 16:38:32 +02:00
Michael Aaron Murphy
14bd633356 improv(theme): theme generation improvements 2024-04-24 18:23:56 +02:00
Ashley Wulber
537486a4ab fix(theme): divider color 2024-04-18 18:09:48 -04:00
Ashley Wulber
d4b5c4f198 chore: update theme defaults 2024-03-08 11:48:12 -05:00
Michael Aaron Murphy
f794c53277 refactor(cosmic-theme): Get ThemeMode version from cosmic config derive 2024-03-05 08:36:43 -07:00
Michael Aaron Murphy
912f0665ef refactor(cosmic-theme): reorganize background, primary, and secondary container code 2024-03-05 08:35:47 -07:00
Michael Aaron Murphy
ed03565c0d chore(cosmic-theme): fix linter warnings in derivation module 2024-03-05 08:35:47 -07:00
Ashley Wulber
c390b2614d wip: support desktop portal color-scheme, and accent variables 2024-03-01 21:30:24 -05:00
Ashley Wulber
09cd1a2319 chore(theme): clippy cleanup 2024-02-26 16:50:40 -07:00
Ashley Wulber
a09f4601ee chore: add shade color to theme 2024-02-26 16:50:40 -07:00
Michael Aaron Murphy
366a450977 improv(segmented_button): rework layout, drawing, and styling to fix visual flaws 2024-02-26 19:17:49 +01:00
Jeremy Soller
63802dfcf9 cosmic-config-derive: automatically generate setters 2024-01-12 09:57:08 -07:00
Ashley Wulber
06c33dcf06 refactor: optional config subscriptions using dbus 2024-01-02 15:12:14 +01:00
Ashley Wulber
a4d1b1b651 refactor: cosmic-config granular key updates and remove unused generics from cosmic-theme 2024-01-02 15:12:14 +01:00
Ashley Wulber
18b22905e2 fix: match the button overlays with figma, and if the button is transparent, use the overlay directly for hover and pressed states 2023-10-26 12:21:54 -04:00
Ashley Wulber
7cc791a3f5
feat: add support for dark / light mode switching (#178)
* feat: add support for dark / light mode switching and simultaneouscustom light / dark mode themes

* refactor(color-picker): optional initial color and fallback color

* refactor: used FixedPortion for layout of the settings item

This makes sure that the control always has at least the specified portion of the available space

* refactor: make all members of the ThemeBuilder public

* refactor: add and update palette colors

* fix(theme): typo and derive PartialEq for ThemeBuilder

* fix: update color picker usage

* feat: add more variables to the theme

* fix: radius on headerbar

* fix: Theme CosmicConfigEntry impl

* chore: specify rev of taffy

* fix: theme CosmicConfigEntry missing variables

* fix: apply theme type when theme mode changes

* wip: add plus icon to empty color picker button

* chore: fix rev and imports

* refactor(color-picker): allow custom size for the icon

* refactor(color_picker): make color_button public

* update iced
2023-10-16 16:19:04 -04:00
Michael Aaron Murphy
6acdba28aa
fix(theme): standard button background color 2023-09-18 08:07:31 +02:00
Michael Aaron Murphy
55095abfce chore(cosmic-theme): adjustments for button theming 2023-09-14 01:38:56 +02:00
Ashley Wulber
4f964a4bc8 fix(theme): use overlay colors directly for the text button 2023-08-18 16:47:10 -04:00
Ashley Wulber
20a5227eca refactor: add button components to theme because they have different overlays than others when they are hovered or pressed 2023-08-14 12:31:16 -04:00
Ashley Wulber
ff83f893ef refactor: updates for buttons and checkboxes 2023-08-14 12:31:16 -04:00
Ashley Wulber
dae262f466 fix: make surfaces lighter if possible in light mode 2023-08-14 12:31:16 -04:00
Ashley Wulber
3507e9f4cf refactor: make corner radius f32 so that it's easier to use with BorderRadius 2023-08-14 12:31:16 -04:00
Ashley Wulber
68225c78cd fix: write spacing and corner_radii when writing the theme 2023-08-14 12:31:16 -04:00
Ashley Wulber
2dfa9dab5a feat: add customization for status colors 2023-08-14 12:31:16 -04:00
Ashley Wulber
ea09abb892 cleanup: remove methods that aren't used anymore 2023-08-14 12:31:16 -04:00
Ashley Wulber
c819f94e74 feat: apply tints 2023-08-14 12:31:16 -04:00
Ashley Wulber
4c6912d351 fix: typo 2023-08-14 12:31:16 -04:00
Ashley Wulber
a618c1b94a wip: calculate theme using new method 2023-08-14 12:31:16 -04:00
Ashley Wulber
607883e4ad feat: add ThemeBuilder 2023-08-14 12:31:16 -04:00
Ashley Wulber
620c1adb74 wip: theme update & some cleanup 2023-08-14 12:31:16 -04:00
Ashley Wulber
a3ab6e93f3 chore: update theme colors 2023-07-21 15:29:57 -06:00
Ashley Wulber
a8a2e4ad26 feat: theme helper methods 2023-06-12 12:16:31 -04:00
Ashley Wulber
6699aa4756 fix: derive PartialEq for Theme 2023-06-09 18:13:30 -04:00
Ashley Wulber
e056e8c830
Cosmic advanced text (#103)
* wip: update to use cosmic-advanced-text

* use cosmic-advanced-text branch of iced

* fix: line height and spacing for segmented button and update to get svg fix

* fix: spin button styling & spacing

* update iced to fix segmented button border radius

* feat: example improvements

* feat: helper for loading fonts

* feat: add focus style to button

* fix: slider height and iced fixed

* feat: hash icon width and height

* cleanup

* update ci

* refactor: always use lazy feature of iced

* update iced

* update iced

* cleanup & update iced

* update iced: new slider & tiny-skia quad updates

* update iced: fixes for tiny-skia quad rendering with edge case border radius

* re-export iced_runtime & iced_widget

* merge master

* udpate iced

* update iced

* update iced

* update iced

* fix: make rectangle_tracker subscription only return update if there is some

* feat: derive macro for loading a cosmic-config

* feat (cosmic-config): iced subscription

* fix (example): update to rectangle tracker subscription

* fix (cosmic-config)

* refactor(cosmic-config-derive): add support for types with generic parameters

* fix (cosmic-config): feature gate updates for subscription helpers

* feat: support for custom & system themes + move cosmic-theme to libcosmic

* feat: sorta hacky way of creating header bars for libcosmic + update iced to get support for resizable windows in iced-sctk

* update iced

* update and reexport sctk

* fix: applet border radius

* feat (cosmic-theme): add id and name methods

* fix(cosmic-theme): reexport palette from cosmic-theme

* fix(cosmic-config-derive): allow use with reexported cosmic-config

* feat: update iced with fix and refactor applet env vars

* update iced
2023-05-30 12:03:15 -04:00