feat(nosignal): finish Nerd Font icon remap — core surfaces

Convert remaining reachable surfaces to NsIcon (launcher, utilities, windowinfo,
sidebar, dashboard, notification toast, shared controls IconTextButton/Menu/
SplitButton/ToggleButton/CollapsibleSection/CustomSpinBox, CoverArt). Handles
the `sourceComponent: MaterialIcon {` form and icon-via-alias controls.

- IconTextButton: alias -> plain `icon` property + bound NsIcon (cross-file alias
  to a custom property was rejected).
- Reverted IconButton `font:` (the controls-wide font->fontStyle sweep wrongly
  hit ButtonBase, which uses font not fontStyle).
- Glyphs map: +31 names (dashboard/utilities/launcher leftovers) — no "?" glyphs.

Old collapsed bar + old lock sub-components left as-is (unused, never render).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
28allday 2026-06-14 12:59:28 +01:00
parent c4738ae974
commit 83c6b62c13
42 changed files with 159 additions and 126 deletions

View file

@ -12,10 +12,10 @@ ColumnLayout {
spacing: Tokens.spacing.medium spacing: Tokens.spacing.medium
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
MaterialIcon { NsIcon {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
animate: true animate: true
text: root.icon icon: root.icon
fontStyle: Tokens.font.icon.builders.extraLarge.scale(3).weight(Font.Bold).build() fontStyle: Tokens.font.icon.builders.extraLarge.scale(3).weight(Font.Bold).build()
} }

View file

@ -45,8 +45,8 @@ ColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
} }
MaterialIcon { NsIcon {
text: "expand_more" icon: "expand_more"
rotation: root.expanded ? 180 : 0 rotation: root.expanded ? 180 : 0
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium

View file

@ -110,11 +110,11 @@ RowLayout {
} }
} }
MaterialIcon { NsIcon {
id: upIcon id: upIcon
anchors.centerIn: parent anchors.centerIn: parent
text: "keyboard_arrow_up" icon: "keyboard_arrow_up"
color: Colours.palette.m3onPrimary color: Colours.palette.m3onPrimary
} }
} }
@ -145,11 +145,11 @@ RowLayout {
onReleased: timer.stop() onReleased: timer.stop()
} }
MaterialIcon { NsIcon {
id: downIcon id: downIcon
anchors.centerIn: parent anchors.centerIn: parent
text: "keyboard_arrow_down" icon: "keyboard_arrow_down"
color: Colours.palette.m3onPrimary color: Colours.palette.m3onPrimary
} }
} }

View file

@ -7,7 +7,7 @@ import qs.services
ButtonBase { ButtonBase {
id: root id: root
property alias icon: iconLabel.text property string icon
property alias text: label.text property alias text: label.text
readonly property alias iconLabel: iconLabel readonly property alias iconLabel: iconLabel
@ -44,9 +44,10 @@ ButtonBase {
anchors.centerIn: parent anchors.centerIn: parent
spacing: Tokens.spacing.small spacing: Tokens.spacing.small
MaterialIcon { NsIcon {
id: iconLabel id: iconLabel
icon: root.icon
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
Layout.topMargin: Math.round(fontInfo.pointSize * 0.0575) Layout.topMargin: Math.round(fontInfo.pointSize * 0.0575)
color: root.onColour color: root.onColour

View file

@ -157,9 +157,9 @@ MouseArea {
anchors.margins: Tokens.padding.medium anchors.margins: Tokens.padding.medium
spacing: Tokens.spacing.small spacing: Tokens.spacing.small
MaterialIcon { NsIcon {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
text: item.modelData?.icon ?? "" icon: item.modelData?.icon ?? ""
color: item.active ? Colours.palette.m3onTertiaryContainer : Colours.palette.m3onSurfaceVariant color: item.active ? Colours.palette.m3onTertiaryContainer : Colours.palette.m3onSurfaceVariant
} }
@ -176,8 +176,8 @@ MouseArea {
active: item.modelData?.trailingIcon.length > 0 active: item.modelData?.trailingIcon.length > 0
visible: active visible: active
sourceComponent: MaterialIcon { sourceComponent: NsIcon {
text: item.modelData.trailingIcon icon: item.modelData.trailingIcon
color: item.active ? Colours.palette.m3onTertiaryContainer : Colours.palette.m3onSurfaceVariant color: item.active ? Colours.palette.m3onTertiaryContainer : Colours.palette.m3onSurfaceVariant
} }
} }

View file

@ -64,12 +64,12 @@ Row {
anchors.horizontalCenterOffset: Math.floor(root.verticalPadding / 4) anchors.horizontalCenterOffset: Math.floor(root.verticalPadding / 4)
spacing: Tokens.spacing.small spacing: Tokens.spacing.small
MaterialIcon { NsIcon {
id: iconLabel id: iconLabel
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
animate: true animate: true
text: root.active?.activeIcon ?? root.fallbackIcon icon: root.active?.activeIcon ?? root.fallbackIcon
color: root.disabled ? root.disabledTextColour : root.textColour color: root.disabled ? root.disabledTextColour : root.textColour
fill: 1 fill: 1
} }
@ -116,13 +116,13 @@ Row {
onClicked: root.expanded = !root.expanded onClicked: root.expanded = !root.expanded
} }
MaterialIcon { NsIcon {
id: expandIcon id: expandIcon
anchors.centerIn: parent anchors.centerIn: parent
anchors.horizontalCenterOffset: root.expanded ? 0 : -Math.floor(root.verticalPadding / 4) anchors.horizontalCenterOffset: root.expanded ? 0 : -Math.floor(root.verticalPadding / 4)
text: "expand_more" icon: "expand_more"
color: root.disabled ? root.disabledTextColour : root.textColour color: root.disabled ? root.disabledTextColour : root.textColour
rotation: root.expanded ? 180 : 0 rotation: root.expanded ? 180 : 0

View file

@ -54,12 +54,12 @@ StyledRect {
anchors.centerIn: parent anchors.centerIn: parent
spacing: Tokens.spacing.medium spacing: Tokens.spacing.medium
MaterialIcon { NsIcon {
id: toggleBtnIcon id: toggleBtnIcon
visible: !!text visible: !!text
fill: root.toggled ? 1 : 0 fill: root.toggled ? 1 : 0
text: root.icon icon: root.icon
color: root.toggled ? Colours.palette[`m3on${root.accent}`] : Colours.palette[`m3on${root.accent}Container`] color: root.toggled ? Colours.palette[`m3on${root.accent}`] : Colours.palette[`m3on${root.accent}Container`]
fontStyle: Tokens.font.icon.size(root.iconSize).build() fontStyle: Tokens.font.icon.size(root.iconSize).build()

View file

@ -57,11 +57,11 @@ Item {
} }
} }
MaterialIcon { NsIcon {
anchors.centerIn: parent anchors.centerIn: parent
grade: 200 grade: 200
text: image.status === Image.Error ? "broken_image" : "art_track" icon: image.status === Image.Error ? "broken_image" : "art_track"
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
fontStyle: Tokens.font.icon.size((parent.width * 0.35) || 1).build() fontStyle: Tokens.font.icon.size((parent.width * 0.35) || 1).build()
opacity: image.status === Image.Null || image.status === Image.Error ? 1 : 0 opacity: image.status === Image.Null || image.status === Image.Error ? 1 : 0

View file

@ -102,11 +102,11 @@ Item {
CAnim {} CAnim {}
} }
MaterialIcon { NsIcon {
id: icon id: icon
anchors.centerIn: parent anchors.centerIn: parent
text: "queue_music" icon: "queue_music"
fontStyle: Tokens.font.icon.builders.large.scale(2).build() fontStyle: Tokens.font.icon.builders.large.scale(2).build()
color: Colours.palette.m3onPrimaryContainer color: Colours.palette.m3onPrimaryContainer
} }

View file

@ -23,9 +23,9 @@ Item {
sourceComponent: ColumnLayout { sourceComponent: ColumnLayout {
spacing: Tokens.spacing.medium spacing: Tokens.spacing.medium
MaterialIcon { NsIcon {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: "tune" icon: "tune"
fontStyle: Tokens.font.icon.builders.extraLarge.scale(2).build() fontStyle: Tokens.font.icon.builders.extraLarge.scale(2).build()
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
} }

View file

@ -153,13 +153,13 @@ Item {
onClicked: root.dashState.currentTab = tab.TabBar.index onClicked: root.dashState.currentTab = tab.TabBar.index
} }
MaterialIcon { NsIcon {
id: icon id: icon
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: label.top anchors.bottom: label.top
text: tab.iconName icon: tab.iconName
color: tab.current ? Colours.palette.m3primary : Colours.palette.m3onSurfaceVariant color: tab.current ? Colours.palette.m3primary : Colours.palette.m3onSurfaceVariant
fill: tab.current ? 1 : 0 fill: tab.current ? 1 : 0
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium

View file

@ -76,9 +76,9 @@ Item {
anchors.centerIn: parent anchors.centerIn: parent
spacing: Tokens.spacing.largeIncreased spacing: Tokens.spacing.largeIncreased
MaterialIcon { NsIcon {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
text: Weather.icon icon: Weather.icon
fontStyle: Tokens.font.icon.builders.extraLarge.scale(3).build() fontStyle: Tokens.font.icon.builders.extraLarge.scale(3).build()
color: Colours.palette.m3secondary color: Colours.palette.m3secondary
animate: true animate: true
@ -180,9 +180,9 @@ Item {
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
} }
MaterialIcon { NsIcon {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: forecastItem.modelData.icon icon: forecastItem.modelData.icon
fontStyle: Tokens.font.icon.extraLarge fontStyle: Tokens.font.icon.extraLarge
color: Colours.palette.m3secondary color: Colours.palette.m3secondary
} }
@ -216,8 +216,8 @@ Item {
anchors.centerIn: parent anchors.centerIn: parent
spacing: Tokens.spacing.medium spacing: Tokens.spacing.medium
MaterialIcon { NsIcon {
text: detailRoot.icon icon: detailRoot.icon
color: detailRoot.colour color: detailRoot.colour
fontStyle: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@ -252,8 +252,8 @@ Item {
spacing: Tokens.spacing.small spacing: Tokens.spacing.small
MaterialIcon { NsIcon {
text: weatherStat.icon icon: weatherStat.icon
fontStyle: Tokens.font.icon.extraLarge fontStyle: Tokens.font.icon.extraLarge
color: weatherStat.colour color: weatherStat.colour
} }

View file

@ -65,10 +65,10 @@ Item {
Anim {} Anim {}
} }
MaterialIcon { NsIcon {
anchors.centerIn: parent anchors.centerIn: parent
text: res.icon icon: res.icon
font: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
color: res.fgColour color: res.fgColour
} }
} }

View file

@ -13,14 +13,14 @@ Item {
Component.onCompleted: Weather.reload() Component.onCompleted: Weather.reload()
MaterialIcon { NsIcon {
id: icon id: icon
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left anchors.left: parent.left
animate: true animate: true
text: Weather.icon icon: Weather.icon
color: Colours.palette.m3secondary color: Colours.palette.m3secondary
fontStyle: Tokens.font.icon.builders.extraLarge.scale(1.6).build() fontStyle: Tokens.font.icon.builders.extraLarge.scale(1.6).build()
} }

View file

@ -75,8 +75,8 @@ Item {
asynchronous: true asynchronous: true
active: pfp.status !== Image.Ready active: pfp.status !== Image.Ready
sourceComponent: MaterialIcon { sourceComponent: NsIcon {
text: "person_add" icon: "person_add"
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
fontStyle: Tokens.font.icon.extraLarge fontStyle: Tokens.font.icon.extraLarge
fill: 1 fill: 1
@ -120,9 +120,9 @@ Item {
} }
} }
MaterialIcon { NsIcon {
anchors.centerIn: parent anchors.centerIn: parent
text: "person_edit" icon: "person_edit"
color: Colours.palette.m3onPrimary color: Colours.palette.m3onPrimary
fontStyle: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
} }
@ -187,9 +187,9 @@ Item {
CAnim {} CAnim {}
} }
MaterialIcon { NsIcon {
anchors.centerIn: parent anchors.centerIn: parent
text: "clock_arrow_up" icon: "clock_arrow_up"
color: Colours.palette.m3onTertiaryContainer color: Colours.palette.m3onTertiaryContainer
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
} }
@ -251,11 +251,11 @@ Item {
anchors.centerIn: parent anchors.centerIn: parent
spacing: Tokens.spacing.extraSmall spacing: Tokens.spacing.extraSmall
MaterialIcon { NsIcon {
id: wmIcon id: wmIcon
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: "select_window" icon: "select_window"
color: Colours.palette.m3onSecondaryContainer color: Colours.palette.m3onSecondaryContainer
fontStyle: wmText.font fontStyle: wmText.font
} }

View file

@ -212,9 +212,9 @@ Item {
sourceComponent: ColumnLayout { sourceComponent: ColumnLayout {
spacing: Tokens.spacing.small spacing: Tokens.spacing.small
MaterialIcon { NsIcon {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: "sentiment_sad" icon: "sentiment_sad"
fontStyle: Tokens.font.icon.builders.large.scale(2).build() fontStyle: Tokens.font.icon.builders.large.scale(2).build()
color: Colours.palette.m3outline color: Colours.palette.m3outline
} }

View file

@ -20,9 +20,9 @@ Item {
spacing: Tokens.spacing.medium spacing: Tokens.spacing.medium
z: 1 z: 1
MaterialIcon { NsIcon {
Layout.topMargin: Math.round(fontInfo.pointSize * 0.12) Layout.topMargin: Math.round(fontInfo.pointSize * 0.12)
text: "lyrics" icon: "lyrics"
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
} }

View file

@ -197,11 +197,11 @@ Item {
hoverEnabled: true hoverEnabled: true
onClicked: root.open = !root.open onClicked: root.open = !root.open
MaterialIcon { NsIcon {
id: icon id: icon
anchors.centerIn: parent anchors.centerIn: parent
text: "more_vert" icon: "more_vert"
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
} }
} }

View file

@ -65,9 +65,9 @@ StyledClippingRect {
spacing: 0 spacing: 0
MaterialIcon { NsIcon {
Layout.leftMargin: -Tokens.padding.extraSmall Layout.leftMargin: -Tokens.padding.extraSmall
text: "battery_full" icon: "battery_full"
color: contents.accentColour color: contents.accentColour
fontStyle: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
} }
@ -115,8 +115,8 @@ StyledClippingRect {
Layout.alignment: Qt.AlignRight Layout.alignment: Qt.AlignRight
spacing: Tokens.spacing.extraSmall spacing: Tokens.spacing.extraSmall
MaterialIcon { NsIcon {
text: "bolt" icon: "bolt"
color: contents.accentColour color: contents.accentColour
fontStyle: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
fill: 1 fill: 1

View file

@ -40,11 +40,11 @@ StyledRect {
Anim {} Anim {}
} }
MaterialIcon { NsIcon {
id: icon id: icon
anchors.centerIn: parent anchors.centerIn: parent
text: root.icon icon: root.icon
color: root.accent color: root.accent
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
} }
@ -84,9 +84,9 @@ StyledRect {
Layout.leftMargin: -Tokens.padding.extraSmall Layout.leftMargin: -Tokens.padding.extraSmall
spacing: Tokens.spacing.extraSmall spacing: Tokens.spacing.extraSmall
MaterialIcon { NsIcon {
Layout.topMargin: Math.round(fontInfo.pointSize * 0.08) Layout.topMargin: Math.round(fontInfo.pointSize * 0.08)
text: root.temperature > 90 ? "thermometer_alert" : "thermometer" icon: root.temperature > 90 ? "thermometer_alert" : "thermometer"
color: root.temperature > 90 ? Colours.palette.m3error : root.accent color: root.temperature > 90 ? Colours.palette.m3error : root.accent
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
fill: 1 fill: 1

View file

@ -31,8 +31,8 @@ StyledRect {
Layout.leftMargin: -Tokens.padding.extraSmall Layout.leftMargin: -Tokens.padding.extraSmall
spacing: Tokens.spacing.small spacing: Tokens.spacing.small
MaterialIcon { NsIcon {
text: "memory_alt" icon: "memory_alt"
fill: 1 fill: 1
color: root.accent color: root.accent
fontStyle: Tokens.font.icon.builders.medium.weight(Font.DemiBold).build() // DemiBold to fix fill issues fontStyle: Tokens.font.icon.builders.medium.weight(Font.DemiBold).build() // DemiBold to fix fill issues

View file

@ -30,8 +30,8 @@ StyledRect {
RowLayout { RowLayout {
spacing: Tokens.spacing.small spacing: Tokens.spacing.small
MaterialIcon { NsIcon {
text: "swap_vert" icon: "swap_vert"
color: Colours.palette.m3primary color: Colours.palette.m3primary
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
} }
@ -105,8 +105,8 @@ StyledRect {
Layout.fillWidth: true Layout.fillWidth: true
spacing: Tokens.spacing.small spacing: Tokens.spacing.small
MaterialIcon { NsIcon {
text: "download" icon: "download"
color: Colours.palette.m3tertiary color: Colours.palette.m3tertiary
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
} }
@ -136,8 +136,8 @@ StyledRect {
Layout.fillWidth: true Layout.fillWidth: true
spacing: Tokens.spacing.small spacing: Tokens.spacing.small
MaterialIcon { NsIcon {
text: "upload" icon: "upload"
color: Colours.palette.m3secondary color: Colours.palette.m3secondary
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
} }
@ -167,8 +167,8 @@ StyledRect {
Layout.fillWidth: true Layout.fillWidth: true
spacing: Tokens.spacing.small spacing: Tokens.spacing.small
MaterialIcon { NsIcon {
text: "history" icon: "history"
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
} }

View file

@ -55,9 +55,9 @@ StyledRect {
anchors.centerIn: parent anchors.centerIn: parent
spacing: 0 spacing: 0
MaterialIcon { NsIcon {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: "hard_drive" icon: "hard_drive"
color: root.accent color: root.accent
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
} }

View file

@ -58,14 +58,14 @@ Item {
implicitHeight: Math.max(searchIcon.implicitHeight, search.implicitHeight, clearIcon.implicitHeight) implicitHeight: Math.max(searchIcon.implicitHeight, search.implicitHeight, clearIcon.implicitHeight)
MaterialIcon { NsIcon {
id: searchIcon id: searchIcon
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: root.padding anchors.leftMargin: root.padding
text: "search" icon: "search"
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
} }
@ -145,7 +145,7 @@ Item {
} }
} }
MaterialIcon { NsIcon {
id: clearIcon id: clearIcon
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@ -163,7 +163,7 @@ Item {
return 1; return 1;
} }
text: "close" icon: "close"
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
MouseArea { MouseArea {

View file

@ -116,8 +116,8 @@ Item {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
MaterialIcon { NsIcon {
text: root.state === "wallpapers" ? "wallpaper_slideshow" : "manage_search" icon: root.state === "wallpapers" ? "wallpaper_slideshow" : "manage_search"
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
fontStyle: Tokens.font.icon.extraLarge fontStyle: Tokens.font.icon.extraLarge

View file

@ -25,11 +25,11 @@ Item {
anchors.rightMargin: Tokens.padding.medium anchors.rightMargin: Tokens.padding.medium
anchors.margins: Tokens.padding.small anchors.margins: Tokens.padding.small
MaterialIcon { NsIcon {
id: icon id: icon
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: root.modelData?.icon ?? "" icon: root.modelData?.icon ?? ""
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
fontStyle: Tokens.font.icon.builders.large.scale(1.3).build() fontStyle: Tokens.font.icon.builders.large.scale(1.3).build()
} }

View file

@ -79,8 +79,8 @@ Item {
anchors.right: parent.right anchors.right: parent.right
active: root.modelData && Strings.testRegexList(GlobalConfig.launcher.favouriteApps, root.modelData.id) active: root.modelData && Strings.testRegexList(GlobalConfig.launcher.favouriteApps, root.modelData.id)
sourceComponent: MaterialIcon { sourceComponent: NsIcon {
text: "favorite" icon: "favorite"
fill: 1 fill: 1
color: Colours.palette.m3primary color: Colours.palette.m3primary
} }

View file

@ -40,8 +40,8 @@ Item {
spacing: Tokens.spacing.medium spacing: Tokens.spacing.medium
MaterialIcon { NsIcon {
text: "function" icon: "function"
fontStyle: Tokens.font.icon.extraLarge fontStyle: Tokens.font.icon.extraLarge
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
} }
@ -105,14 +105,14 @@ Item {
} }
} }
MaterialIcon { NsIcon {
id: icon id: icon
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: Tokens.padding.medium anchors.rightMargin: Tokens.padding.medium
text: "open_in_new" icon: "open_in_new"
color: Colours.palette.m3onTertiary color: Colours.palette.m3onTertiary
fontStyle: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
} }

View file

@ -92,8 +92,8 @@ Item {
active: `${root.modelData?.name} ${root.modelData?.flavour}` === Schemes.currentScheme active: `${root.modelData?.name} ${root.modelData?.flavour}` === Schemes.currentScheme
sourceComponent: MaterialIcon { sourceComponent: NsIcon {
text: "check" icon: "check"
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
fontStyle: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
} }

View file

@ -26,10 +26,10 @@ Item {
anchors.rightMargin: Tokens.padding.medium anchors.rightMargin: Tokens.padding.medium
anchors.margins: Tokens.padding.small anchors.margins: Tokens.padding.small
MaterialIcon { NsIcon {
id: icon id: icon
text: root.modelData?.icon ?? "" icon: root.modelData?.icon ?? ""
fontStyle: Tokens.font.icon.extraLarge fontStyle: Tokens.font.icon.extraLarge
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@ -68,8 +68,8 @@ Item {
active: root.modelData?.variant === Schemes.currentVariant active: root.modelData?.variant === Schemes.currentVariant
sourceComponent: MaterialIcon { sourceComponent: NsIcon {
text: "check" icon: "check"
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
fontStyle: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
} }

View file

@ -57,9 +57,9 @@ Item {
implicitWidth: Tokens.sizes.launcher.wallpaperWidth implicitWidth: Tokens.sizes.launcher.wallpaperWidth
implicitHeight: implicitWidth / 16 * 9 implicitHeight: implicitWidth / 16 * 9
MaterialIcon { NsIcon {
anchors.centerIn: parent anchors.centerIn: parent
text: "image" icon: "image"
color: Colours.tPalette.m3outline color: Colours.tPalette.m3outline
fontStyle: Tokens.font.icon.builders.extraLarge.scale(2).weight(Font.DemiBold).build() fontStyle: Tokens.font.icon.builders.extraLarge.scale(2).weight(Font.DemiBold).build()
} }

View file

@ -177,8 +177,8 @@ StyledRect {
anchors.centerIn: parent anchors.centerIn: parent
anchors.verticalCenterOffset: 1 anchors.verticalCenterOffset: 1
sourceComponent: MaterialIcon { sourceComponent: NsIcon {
text: Icons.getNotifIcon(root.modelData.summary, root.modelData.urgency) icon: Icons.getNotifIcon(root.modelData.summary, root.modelData.urgency)
color: root.modelData.urgency === NotificationUrgency.Critical ? Colours.palette.m3onError : root.modelData.urgency === NotificationUrgency.Low ? Colours.palette.m3onSurface : Colours.palette.m3onSecondaryContainer color: root.modelData.urgency === NotificationUrgency.Critical ? Colours.palette.m3onError : root.modelData.urgency === NotificationUrgency.Low ? Colours.palette.m3onSurface : Colours.palette.m3onSecondaryContainer
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
} }
@ -363,12 +363,12 @@ StyledRect {
onClicked: root.expanded = !root.expanded onClicked: root.expanded = !root.expanded
} }
MaterialIcon { NsIcon {
id: expandIcon id: expandIcon
anchors.centerIn: parent anchors.centerIn: parent
anchors.verticalCenterOffset: root.expanded ? -1 : 1 anchors.verticalCenterOffset: root.expanded ? -1 : 1
text: "expand_more" icon: "expand_more"
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
rotation: root.expanded ? 180 : 0 rotation: root.expanded ? 180 : 0

View file

@ -160,9 +160,9 @@ Item {
Component { Component {
id: iconBtn id: iconBtn
MaterialIcon { NsIcon {
animate: action.modelData.isCopy ?? false animate: action.modelData.isCopy ?? false
text: action.modelData.isCopy ? "content_copy" : "close" icon: action.modelData.isCopy ? "content_copy" : "close"
color: Colours.palette.m3onSurfaceVariant color: Colours.palette.m3onSurfaceVariant
} }
} }

View file

@ -110,8 +110,8 @@ StyledRect {
Component { Component {
id: materialIconComp id: materialIconComp
MaterialIcon { NsIcon {
text: Icons.getNotifIcon(root.activeNotifs[0]?.summary, root.urgency) icon: Icons.getNotifIcon(root.activeNotifs[0]?.summary, root.urgency)
color: root.urgency === NotificationUrgency.Critical ? Colours.palette.m3onError : root.urgency === NotificationUrgency.Low ? Colours.palette.m3onSurface : Colours.palette.m3onSecondaryContainer color: root.urgency === NotificationUrgency.Critical ? Colours.palette.m3onError : root.urgency === NotificationUrgency.Low ? Colours.palette.m3onSurface : Colours.palette.m3onSecondaryContainer
fontStyle: Tokens.font.icon.medium fontStyle: Tokens.font.icon.medium
} }
@ -214,9 +214,9 @@ StyledRect {
font: Tokens.font.body.small font: Tokens.font.body.small
} }
MaterialIcon { NsIcon {
Layout.rightMargin: -Tokens.padding.extraSmall / 2 Layout.rightMargin: -Tokens.padding.extraSmall / 2
text: "expand_more" icon: "expand_more"
color: root.urgency === NotificationUrgency.Critical ? Colours.palette.m3onError : Colours.palette.m3onSurfaceVariant color: root.urgency === NotificationUrgency.Critical ? Colours.palette.m3onError : Colours.palette.m3onSurfaceVariant
rotation: root.expanded ? 180 : 0 rotation: root.expanded ? 180 : 0
Layout.topMargin: root.expanded ? -Math.floor(Tokens.padding.extraSmall) : 0 Layout.topMargin: root.expanded ? -Math.floor(Tokens.padding.extraSmall) : 0

View file

@ -33,11 +33,11 @@ StyledRect {
radius: Tokens.rounding.full radius: Tokens.rounding.full
color: IdleInhibitor.enabled ? Colours.palette.m3secondary : Colours.palette.m3secondaryContainer color: IdleInhibitor.enabled ? Colours.palette.m3secondary : Colours.palette.m3secondaryContainer
MaterialIcon { NsIcon {
id: icon id: icon
anchors.centerIn: parent anchors.centerIn: parent
text: "coffee" icon: "coffee"
color: IdleInhibitor.enabled ? Colours.palette.m3onSecondary : Colours.palette.m3onSecondaryContainer color: IdleInhibitor.enabled ? Colours.palette.m3onSecondary : Colours.palette.m3onSecondaryContainer
fontStyle: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
} }

View file

@ -43,12 +43,12 @@ StyledRect {
radius: Tokens.rounding.full radius: Tokens.rounding.full
color: Recorder.running ? Colours.palette.m3secondary : Colours.palette.m3secondaryContainer color: Recorder.running ? Colours.palette.m3secondary : Colours.palette.m3secondaryContainer
MaterialIcon { NsIcon {
id: icon id: icon
anchors.centerIn: parent anchors.centerIn: parent
anchors.verticalCenterOffset: 1 anchors.verticalCenterOffset: 1
text: "screen_record" icon: "screen_record"
color: Recorder.running ? Colours.palette.m3onSecondary : Colours.palette.m3onSecondaryContainer color: Recorder.running ? Colours.palette.m3onSecondary : Colours.palette.m3onSecondaryContainer
fontStyle: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
} }

View file

@ -29,9 +29,9 @@ ColumnLayout {
RowLayout { RowLayout {
spacing: Tokens.spacing.medium spacing: Tokens.spacing.medium
MaterialIcon { NsIcon {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
text: "list" icon: "list"
fontStyle: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
} }
@ -165,9 +165,9 @@ ColumnLayout {
sourceComponent: ColumnLayout { sourceComponent: ColumnLayout {
spacing: Tokens.spacing.small spacing: Tokens.spacing.small
MaterialIcon { NsIcon {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: "scan_delete" icon: "scan_delete"
color: Colours.palette.m3outline color: Colours.palette.m3outline
fontStyle: Tokens.font.icon.extraLarge fontStyle: Tokens.font.icon.extraLarge
@ -193,9 +193,9 @@ ColumnLayout {
RowLayout { RowLayout {
spacing: Tokens.spacing.medium spacing: Tokens.spacing.medium
MaterialIcon { NsIcon {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: "scan_delete" icon: "scan_delete"
color: Colours.palette.m3outline color: Colours.palette.m3outline
opacity: !root.props.recordingListExpanded ? 1 : 0 opacity: !root.props.recordingListExpanded ? 1 : 0

View file

@ -70,11 +70,11 @@ StyledRect {
implicitWidth: implicitHeight implicitWidth: implicitHeight
implicitHeight: icon.implicitHeight + Tokens.padding.large implicitHeight: icon.implicitHeight + Tokens.padding.large
MaterialIcon { NsIcon {
id: icon id: icon
anchors.centerIn: parent anchors.centerIn: parent
text: root.modelData.icon icon: root.modelData.icon
color: { color: {
if (root.modelData.type === Toast.Success) if (root.modelData.type === Toast.Success)
return Colours.palette.m3onSuccess; return Colours.palette.m3onSuccess;

View file

@ -41,13 +41,13 @@ ColumnLayout {
onClicked: root.moveToWsExpanded = !root.moveToWsExpanded onClicked: root.moveToWsExpanded = !root.moveToWsExpanded
} }
MaterialIcon { NsIcon {
id: moveToWsIcon id: moveToWsIcon
anchors.centerIn: parent anchors.centerIn: parent
animate: true animate: true
text: root.moveToWsExpanded ? "expand_more" : "keyboard_arrow_right" icon: root.moveToWsExpanded ? "expand_more" : "keyboard_arrow_right"
color: Colours.palette.m3onPrimary color: Colours.palette.m3onPrimary
fontStyle: Tokens.font.icon.large fontStyle: Tokens.font.icon.large
} }

View file

@ -135,11 +135,11 @@ ColumnLayout {
spacing: Tokens.spacing.medium spacing: Tokens.spacing.medium
MaterialIcon { NsIcon {
id: icon id: icon
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
text: detail.icon icon: detail.icon
} }
StyledText { StyledText {

View file

@ -40,9 +40,9 @@ Item {
sourceComponent: ColumnLayout { sourceComponent: ColumnLayout {
spacing: 0 spacing: 0
MaterialIcon { NsIcon {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: "web_asset_off" icon: "web_asset_off"
color: Colours.palette.m3outline color: Colours.palette.m3outline
fontStyle: Tokens.font.icon.builders.extraLarge.scale(3).build() fontStyle: Tokens.font.icon.builders.extraLarge.scale(3).build()
} }

View file

@ -200,7 +200,39 @@ Singleton {
"dock": root.cp(0xf2d1), "dock": root.cp(0xf2d1),
// lock screen // lock screen
"login": root.cp(0xf090), "login": root.cp(0xf090),
"key": root.cp(0xf084) "key": root.cp(0xf084),
// dashboard / utilities / launcher leftovers
"account_tree": root.cp(0xf0e8),
"android": root.cp(0xf17b),
"category": root.cp(0xf02c),
"clear_all": root.cp(0xf2ed),
"compare": root.cp(0xf362),
"compare_arrows": root.cp(0xf362),
"contrast": root.cp(0xf042),
"delete_forever": root.cp(0xf1f8),
"filter_b_and_w": root.cp(0xf0b0),
"fullscreen": root.cp(0xf065),
"gamepad": root.cp(0xf11b),
"gradient": root.cp(0xf043),
"hard_disk": root.cp(0xf0a0),
"keep": root.cp(0xf08d),
"location_on": root.cp(0xf041),
"location_searching": root.cp(0xf05b),
"looks": root.cp(0xf53f),
"memory": root.cp(0xf2db),
"notifications_off": root.cp(0xf1f6),
"nutrition": root.cp(0xf787),
"page_header": root.cp(0xf036),
"picture_in_picture_center": root.cp(0xf2d0),
"resize": root.cp(0xf065),
"screenshot_region": root.cp(0xf247),
"select_to_speak": root.cp(0xf028),
"sentiment_calm": root.cp(0xf118),
"sentiment_very_dissatisfied": root.cp(0xf119),
"stop": root.cp(0xf04d),
"thermostat": root.cp(0xf2c9),
"water_drop": root.cp(0xf043),
"wb_twilight": root.cp(0xf185)
} }
function get(name: string): string { function get(name: string): string {