Coherence: one component per idea, one spelling per word, one truth per claim

Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
Gabriel Brown
2026-08-25 02:21:45 -04:00
parent 06c53d6c21
commit bd2fd12de2
87 changed files with 660 additions and 766 deletions
@@ -1,11 +1,16 @@
// A small uppercase heading inside a card, with an optional count beside it.
// A small uppercase heading, with an optional count beside it.
//
// SectionLabel { text: "Camera"; count: "2 apps have asked" }
// SectionLabel { text: "Camera"; count: "2 applications have asked" }
//
// A card whose rows come from four different permission tables needs to say
// which table a row belongs to, and a second SettingsCard per table would give
// four headers, four subtitles and four borders to one subject. This is the
// lighter divider: it groups rows without pretending they are separate topics.
//
// It does the same job one level up, between cards, where a page has more
// cards than a reader can hold at once and they fall into two or three
// stretches -- Sound's "Alerts & feedback", Displays' "All displays". Same
// shape either way, which is the point of it being one component.
import QtQuick
import qs.config
@@ -41,6 +46,9 @@ Item {
text: root.count
color: Theme.alpha(Theme.fgMuted, 0.75)
font.family: Theme.fontFamily
// Counts are the usual thing to put here, and a count that changes
// as a filter narrows should not shuffle the digits beside it.
font.features: Theme.tabularFigures
font.pixelSize: Math.max(9, Theme.fontSizeSmall - 1)
font.letterSpacing: 0.7
}