feat: add wifi toggle slider (#348)
* feat: add wifi toggle slider * Added styling options for the network switch --------- Co-authored-by: Jas Singh <jaskiratpal.singh@outlook.com>
This commit is contained in:
@@ -31,6 +31,15 @@ const Wifi = (): BoxWidget => {
|
|||||||
hpack: 'start',
|
hpack: 'start',
|
||||||
label: 'Wi-Fi',
|
label: 'Wi-Fi',
|
||||||
}),
|
}),
|
||||||
|
Widget.Switch({
|
||||||
|
class_name: 'menu-switch network',
|
||||||
|
vpack: 'center',
|
||||||
|
tooltip_text: 'Toggle Wifi',
|
||||||
|
active: network.wifi.enabled,
|
||||||
|
on_activate: () => {
|
||||||
|
network.toggleWifi();
|
||||||
|
},
|
||||||
|
}),
|
||||||
Widget.Button({
|
Widget.Button({
|
||||||
vpack: 'center',
|
vpack: 'center',
|
||||||
hpack: 'end',
|
hpack: 'end',
|
||||||
|
|||||||
@@ -528,6 +528,11 @@ const options = mkOptions(OPTIONS, {
|
|||||||
passive: opt(colors.text),
|
passive: opt(colors.text),
|
||||||
active: opt(colors.mauve),
|
active: opt(colors.mauve),
|
||||||
},
|
},
|
||||||
|
switch: {
|
||||||
|
enabled: opt(colors.mauve),
|
||||||
|
disabled: opt(tertiary_colors.surface0),
|
||||||
|
puck: opt(secondary_colors.surface1),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
bluetooth: {
|
bluetooth: {
|
||||||
scaling: opt(100),
|
scaling: opt(100),
|
||||||
|
|||||||
@@ -1,147 +1,184 @@
|
|||||||
.menu-items-container.network * {
|
.menu-items-container.network * {
|
||||||
font-size: $font-size * $bar-menus-menu-network-scaling * 0.01;
|
font-size: $font-size * $bar-menus-menu-network-scaling * 0.01;
|
||||||
}
|
}
|
||||||
|
|
||||||
@import "./menu.scss";
|
@import './menu.scss';
|
||||||
|
|
||||||
.menu-items.network {
|
.menu-items.network {
|
||||||
background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-network-background-color);
|
background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-network-background-color);
|
||||||
border-color: if($bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-network-border-color);
|
border-color: if($bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-network-border-color);
|
||||||
opacity: $bar-menus-opacity * 0.01;
|
opacity: $bar-menus-opacity * 0.01;
|
||||||
font-size: $font-size * $bar-menus-menu-network-scaling * 0.01;
|
font-size: $font-size * $bar-menus-menu-network-scaling * 0.01;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-items-container.network {
|
.menu-items-container.network {
|
||||||
min-width: 18em * $bar-menus-menu-network-scaling * 0.01;
|
min-width: 18em * $bar-menus-menu-network-scaling * 0.01;
|
||||||
font-size: 1.3em;
|
|
||||||
|
|
||||||
.menu-items-section {
|
|
||||||
padding-bottom: 1.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-label {
|
|
||||||
color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-network-label-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.network-icon {
|
|
||||||
font-size: 1.3em;
|
font-size: 1.3em;
|
||||||
min-width: 1em;
|
|
||||||
min-height: 1em;
|
|
||||||
color: if($bar-menus-monochrome, $bar-menus-icons-passive, $bar-menus-menu-network-icons-passive);
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-network-icons-active);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-icon-button.network {
|
|
||||||
margin: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.connection-container {
|
|
||||||
margin-left: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.connection-status.dim {
|
|
||||||
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
|
||||||
opacity: 0.5;
|
|
||||||
font-size: 0.9em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-section-container.wifi {
|
|
||||||
margin-top: 0.65em;
|
|
||||||
|
|
||||||
.menu-items-section {
|
.menu-items-section {
|
||||||
min-height: 12em;
|
padding-bottom: 1.5em;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.network-element-item {
|
|
||||||
&:not(:last-child) {
|
|
||||||
margin-bottom: 0.5em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&.staging {
|
.menu-label {
|
||||||
margin-bottom: 0.5em;
|
color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-network-label-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
.network-icon {
|
||||||
.network-icon {
|
font-size: 1.3em;
|
||||||
color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-network-icons-active);
|
min-width: 1em;
|
||||||
opacity: 1;
|
min-height: 1em;
|
||||||
}
|
color: if($bar-menus-monochrome, $bar-menus-icons-passive, $bar-menus-menu-network-icons-passive);
|
||||||
|
|
||||||
.active-connection {
|
&.active {
|
||||||
|
color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-network-icons-active);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-icon-button.network {
|
||||||
|
margin: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.connection-container {
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.connection-status.dim {
|
||||||
|
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
||||||
|
opacity: 0.5;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-section-container.wifi {
|
||||||
|
margin-top: 0.65em;
|
||||||
|
|
||||||
|
.menu-items-section {
|
||||||
|
min-height: 12em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.network-element-item {
|
||||||
|
&:not(:last-child) {
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.staging {
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
.network-icon {
|
||||||
|
color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-network-icons-active);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active-connection {
|
||||||
|
color: if(
|
||||||
|
$bar-menus-monochrome,
|
||||||
|
$bar-menus-iconbuttons-active,
|
||||||
|
$bar-menus-menu-network-iconbuttons-active
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active-connection {
|
||||||
|
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
||||||
|
}
|
||||||
|
|
||||||
|
.active-connection.dim {
|
||||||
|
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.spinner.wap {
|
||||||
color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-network-iconbuttons-active);
|
color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-network-iconbuttons-active);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.active-connection {
|
.network-password-input-container {
|
||||||
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
background: darken(if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-network-card-color), 5%);
|
||||||
|
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
||||||
|
border-radius: 0.4em;
|
||||||
|
margin: 0em 2em;
|
||||||
|
margin-top: 0.75em;
|
||||||
|
padding: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.active-connection.dim {
|
.close-network-password-input-button {
|
||||||
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
padding: 0em 0.5em;
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.spinner.wap {
|
&:hover image {
|
||||||
color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-network-iconbuttons-active);
|
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
||||||
}
|
opacity: 0.5;
|
||||||
|
}
|
||||||
.network-password-input-container {
|
|
||||||
background: darken(if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-network-card-color), 5%);
|
|
||||||
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
|
||||||
border-radius: 0.4em;
|
|
||||||
margin: 0em 2em;
|
|
||||||
margin-top: 0.75em;
|
|
||||||
padding: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.close-network-password-input-button {
|
|
||||||
padding: 0em 0.5em;
|
|
||||||
|
|
||||||
&:hover image {
|
|
||||||
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-icon-button.network.search {
|
|
||||||
color: if($bar-menus-monochrome, $bar-menus-iconbuttons-passive, $bar-menus-menu-network-iconbuttons-passive);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-network-iconbuttons-active);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-icon-button.network.disconnect {
|
|
||||||
color: if($bar-menus-monochrome, $bar-menus-iconbuttons-passive, $bar-menus-menu-network-iconbuttons-passive);
|
|
||||||
margin: 0em;
|
|
||||||
margin-top: -0.2em;
|
|
||||||
margin-left: 1em;
|
|
||||||
|
|
||||||
label {
|
|
||||||
font-size: 1.4em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
.menu-icon-button.network.search {
|
||||||
color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-network-iconbuttons-active);
|
color: if($bar-menus-monochrome, $bar-menus-iconbuttons-passive, $bar-menus-menu-network-iconbuttons-passive);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-network-iconbuttons-active);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.waps-not-found.dim {
|
.menu-icon-button.network.disconnect {
|
||||||
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
color: if($bar-menus-monochrome, $bar-menus-iconbuttons-passive, $bar-menus-menu-network-iconbuttons-passive);
|
||||||
opacity: 0.5;
|
margin: 0em;
|
||||||
}
|
margin-top: -0.2em;
|
||||||
|
margin-left: 1em;
|
||||||
|
|
||||||
.menu-label-container {
|
label {
|
||||||
background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-network-card-color);
|
font-size: 1.4em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-network-iconbuttons-active);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.menu-items-section {
|
.waps-not-found.dim {
|
||||||
background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-network-card-color);
|
color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text);
|
||||||
}
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-label-container {
|
||||||
|
background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-network-card-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-items-section {
|
||||||
|
background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-network-card-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-switch.network {
|
||||||
|
background-color: if(
|
||||||
|
$bar-menus-monochrome,
|
||||||
|
$bar-menus-switch-disabled,
|
||||||
|
$bar-menus-menu-network-switch-disabled
|
||||||
|
);
|
||||||
|
|
||||||
|
&:checked {
|
||||||
|
background: if($bar-menus-monochrome, $bar-menus-switch-enabled, $bar-menus-menu-network-switch-enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
slider {
|
||||||
|
background-color: if($bar-menus-monochrome, $bar-menus-switch-puck, $bar-menus-menu-network-switch-puck);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
trough {
|
||||||
|
background: if(
|
||||||
|
$bar-menus-monochrome,
|
||||||
|
$bar-menus-switch-disabled,
|
||||||
|
$bar-menus-menu-network-switch-disabled
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
slider {
|
||||||
|
background: if($bar-menus-monochrome, $bar-menus-switch-puck, $bar-menus-menu-network-switch-puck);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background: if($bar-menus-monochrome, $bar-menus-switch-enabled, $bar-menus-menu-network-switch-enabled);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,6 +40,19 @@ export const NetworkMenuTheme = (): Scrollable<Child, Attribute> => {
|
|||||||
type: 'color',
|
type: 'color',
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
Header('Switch'),
|
||||||
|
Option({
|
||||||
|
opt: options.theme.bar.menus.menu.network.switch.enabled,
|
||||||
|
title: 'Enabled',
|
||||||
|
type: 'color',
|
||||||
|
}),
|
||||||
|
Option({
|
||||||
|
opt: options.theme.bar.menus.menu.network.switch.disabled,
|
||||||
|
title: 'Disabled',
|
||||||
|
type: 'color',
|
||||||
|
}),
|
||||||
|
Option({ opt: options.theme.bar.menus.menu.network.switch.puck, title: 'Puck', type: 'color' }),
|
||||||
|
|
||||||
Header('List Items'),
|
Header('List Items'),
|
||||||
Option({
|
Option({
|
||||||
opt: options.theme.bar.menus.menu.network.listitems.active,
|
opt: options.theme.bar.menus.menu.network.listitems.active,
|
||||||
|
|||||||
Reference in New Issue
Block a user