feat(settings): Inter as default UI font + UI font picker (T-460)
Vendor Inter (variable + italic, OFL) under assets/fonts/inter/ and make it the default application UI face, replacing Josefin Sans (which stays bundled as a selectable option). pubspec font family + licenses.yaml entry per D-42. Settings → Appearance gains a UI-font select (Inter / Josefin Sans). The root DefaultTextStyle reads app.ui.font (kUiFontSettingKey) over the default and re-applies live on settings change, so a pick takes effect immediately. Bump the default UI weight to w400 — Inter reads better at Regular than Josefin's Light. The monospace picker is deferred to T-471: clideMonoFamily is a const at ~38 call sites (not inherited), so a live mono picker needs the family routed through context first. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,7 @@ import 'package:clide/builtin/theme_picker/src/settings_view.dart';
|
||||
import 'package:clide/builtin/theme_picker/src/theme_status_item.dart';
|
||||
import 'package:clide/extension/extension.dart';
|
||||
import 'package:clide/kernel/kernel.dart';
|
||||
import 'package:clide/widgets/widgets.dart' show kUiFontSettingKey;
|
||||
|
||||
class ThemePickerExtension extends ClideExtension {
|
||||
@override
|
||||
@@ -55,6 +56,22 @@ class ThemePickerExtension extends ClideExtension {
|
||||
),
|
||||
],
|
||||
),
|
||||
SettingsSection(
|
||||
label: 'Typography',
|
||||
fields: [
|
||||
SettingsField(
|
||||
key: kUiFontSettingKey,
|
||||
kind: SettingsFieldKind.select,
|
||||
label: 'UI font',
|
||||
help: 'Typeface for the app interface; applies live.',
|
||||
defaultValue: 'Inter',
|
||||
options: [
|
||||
SettingsOption(value: 'Inter', label: 'Inter'),
|
||||
SettingsOption(value: 'JosefinSans', label: 'Josefin Sans'),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user