feat: lay our own pages out as interface rather than as articles
This commit is contained in:
parent
e7a8e91334
commit
dfba1cfb16
8 changed files with 162 additions and 55 deletions
|
|
@ -127,6 +127,7 @@ class _ThemedApp extends StatelessWidget {
|
|||
_ => ThemeMode.system,
|
||||
};
|
||||
final settings = deps.settings;
|
||||
final font = settings.font.value;
|
||||
final page = deps.browser.currentPage.value;
|
||||
final variant = settings.variant.value == 'site'
|
||||
? (page?.variant ?? MewsVariant.plain)
|
||||
|
|
@ -135,14 +136,18 @@ class _ThemedApp extends StatelessWidget {
|
|||
return MaterialApp(
|
||||
title: 'Mews',
|
||||
themeMode: mode,
|
||||
theme: _themeFor(paletteFor(pageVariant: variant, readerVariant: 'site', dark: false)),
|
||||
darkTheme: _themeFor(paletteFor(pageVariant: variant, readerVariant: 'site', dark: true)),
|
||||
theme: _themeFor(
|
||||
paletteFor(pageVariant: variant, readerVariant: 'site', dark: false),
|
||||
font),
|
||||
darkTheme: _themeFor(
|
||||
paletteFor(pageVariant: variant, readerVariant: 'site', dark: true),
|
||||
font),
|
||||
home: const ReaderScreen(),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
ThemeData _themeFor(MewsPalette palette) {
|
||||
ThemeData _themeFor(MewsPalette palette, String fontFamily) {
|
||||
final dark = palette.background.computeLuminance() < 0.5;
|
||||
final scheme = ColorScheme(
|
||||
brightness: dark ? Brightness.dark : Brightness.light,
|
||||
|
|
@ -163,6 +168,9 @@ class _ThemedApp extends StatelessWidget {
|
|||
return ThemeData(
|
||||
useMaterial3: true,
|
||||
colorScheme: scheme,
|
||||
// The chrome reads in the typeface the reader chose for pages, so the
|
||||
// address bar and the page below it are not two different faces.
|
||||
fontFamily: fontFamily,
|
||||
scaffoldBackgroundColor: palette.background,
|
||||
// Selection highlights and the caret follow the palette too.
|
||||
textSelectionTheme: TextSelectionThemeData(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue