Comments (1)
Yes this is horrible for developers using firefox. Even without the performance issues on firefox I believe this amount of CSS variables is too much. The way I helped this issue is by creating a single theme (no light/dark theme) and removing the color palette variables:
@use "bulma/sass/utilities/css-variables" as cv;
@use "bulma/sass/utilities/derived-variables" as dv;
@use "bulma/sass/utilities/initial-variables" as iv;
@use "bulma/sass/utilities/functions" as fn;
@use "bulma/sass/themes/setup";
@use "sass:list";
// The main lightness of this theme
$scheme-main-l: 100%;
// The main scheme color, used to make calculations
$scheme-main: hsl(iv.$scheme-h, iv.$scheme-s, $scheme-main-l);
@mixin my-theme {
@include cv.register-vars(
(
"scheme-h": iv.$scheme-h,
"scheme-s": iv.$scheme-s,
"light-l": iv.$light-l,
"light-invert-l": iv.$dark-l,
"dark-l": iv.$dark-l,
"dark-invert-l": iv.$light-l,
"soft-l": iv.$light-l,
"bold-l": iv.$dark-l,
"soft-invert-l": iv.$dark-l,
"bold-invert-l": iv.$light-l,
// Deltas
"hover-background-l-delta": -5%,
"active-background-l-delta": -10%,
"hover-border-l-delta": -10%,
"active-border-l-delta": -20%,
"hover-color-l-delta": -5%,
"active-color-l-delta": -10%,
"hover-shadow-a-delta": -0.05,
"active-shadow-a-delta": -0.1,
// Light only
"scheme-brightness": "light",
"scheme-main-l": $scheme-main-l,
"scheme-main-bis-l": 98%,
"scheme-main-ter-l": 96%,
"background-l": 96%,
"border-weak-l": 93%,
"border-l": 86%,
"text-weak-l": 48%,
"text-l": 29%,
"text-strong-l": 21%,
"text-title-l": 14%,
"scheme-invert-ter-l": 14%,
"scheme-invert-bis-l": 7%,
"scheme-invert-l": 4%,
// Typography
"family-primary": dv.$family-primary,
"family-secondary": dv.$family-secondary,
"family-code": dv.$family-code,
"size-small": dv.$size-small,
"size-normal": dv.$size-normal,
"size-medium": dv.$size-medium,
"size-large": dv.$size-large,
"weight-light": iv.$weight-light,
"weight-normal": iv.$weight-normal,
"weight-medium": iv.$weight-medium,
"weight-semibold": iv.$weight-semibold,
"weight-bold": iv.$weight-bold,
"weight-extrabold": iv.$weight-extrabold,
// Other
"block-spacing": iv.$block-spacing,
"duration": 294ms,
"easing": ease-out,
"radius-small": iv.$radius-small,
"radius": iv.$radius,
"radius-medium": iv.$radius-medium,
"radius-large": iv.$radius-large,
"radius-rounded": 9999px,
"speed": 86ms,
"arrow-color": #{cv.getVar("link")},
"loading-color": #{cv.getVar("border")},
"burger-h": #{cv.getVar("link-h")},
"burger-s": #{cv.getVar("link-s")},
"burger-l": #{cv.getVar("link-l")},
"burger-border-radius": 0.5em,
// Using px values to prevent half pixel issues
"burger-gap": 5px,
"burger-item-height": 2px,
"burger-item-width": 20px,
)
);
// Colors
$no-palette: ("white", "black", "light", "dark");
@each $name, $color in dv.$colors {
$base: $color;
$invert: null;
$light: null;
$dark: null;
@if type-of($color == "list") {
$base: list.nth($color, 1);
@if list.length($color) > 3 {
$invert: list.nth($color, 2);
$light: list.nth($color, 3);
$dark: list.nth($color, 4);
} @else if list.length($color) > 1 {
$invert: list.nth($color, 2);
}
}
@include cv.generate-basic-palette($name, $base, $invert);
// I will not be using palettes
// @if list.index($no-palette, $name) {
// @include cv.generate-basic-palette($name, $base, $invert);
// } @else {
// @include cv.generate-color-palette(
// $name,
// $base,
// $scheme-main-l,
// $invert,
// $light,
// $dark
// );
// }
@include cv.generate-on-scheme-colors($name, $base, $scheme-main);
}
// Shades
@each $name, $shade in dv.$shades {
@include cv.register-var($name, $shade);
}
@include cv.register-hsl("shadow", dv.$shadow-color);
@each $size in dv.$sizes {
$i: index(dv.$sizes, $size);
$name: "size-#{$i}";
@include cv.register-var($name, $size);
}
}
:root {
@include my-theme;
@include setup.setup-theme;
}
@include cv.bulma-theme($name: "light") {
@include my-theme;
@include setup.setup-theme;
}
But this is still not enough for me to switch to the new version, as customization and working with this is way too complex.
Also removing the "bulma" prefix from variables helps for me:
@use "bulma/sass/utilities" as cv with (
$cssvars-prefix: "",
);
from bulma.
Related Issues (20)
- Columns is-variable not working HOT 2
- Italic font by default HOT 1
- Table "is-striped" and "is-hoverable" modifiers appear to be broken in 1.0.0 HOT 1
- Can we get an example of how to create a simple bulma scss theme? HOT 1
- How do I override the colors in the dark theme?
- Some of the helper classes are missing prefix in the pre-built alternative of "Prefixed" version
- Unable to access Bulma variables despite using the @use keyword HOT 1
- Table Header text color isn't set correctly when a thead is present
- Dead link in the documentation on the Button page
- Combining file input with .has-addons
- Probably missing forward declaration for mixins
- is-offset-one-third makes only 0.3333% spacing
- Navbar in Bulma display incorrectly? HOT 1
- Multiple Selection looks bad on Safari
- Select element does not coloring HOT 1
- Card component ignoring columns? HOT 2
- is-danger doesn't update select dropdown HOT 1
- Non-minified version of bulma-prefixed is missing
- Alternate version links point to the 1.0.0 release
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bulma.