feat(mobile): 2026 font (#25213)

This commit is contained in:
Alex
2026-01-13 09:59:57 -06:00
committed by GitHub
parent 6e86697996
commit aba85b036c
24 changed files with 33 additions and 31 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -51,4 +51,4 @@ const Map<String, Locale> locales = {
const String translationsPath = 'assets/i18n'; const String translationsPath = 'assets/i18n';
const List<Locale> localesNotSupportedByOverpass = [Locale('el', 'GR'), Locale('sr', 'Cyrl')]; const List<Locale> localesNotSupportedByAppFont = [Locale('el', 'GR'), Locale('sr', 'Cyrl')];

View File

@@ -100,7 +100,7 @@ class AppLogPage extends HookConsumerWidget {
minLeadingWidth: 10, minLeadingWidth: 10,
title: Text( title: Text(
truncateLogMessage(logMessage.message, 4), truncateLogMessage(logMessage.message, 4),
style: TextStyle(fontSize: 14.0, color: context.colorScheme.onSurface, fontFamily: "Inconsolata"), style: TextStyle(fontSize: 14.0, color: context.colorScheme.onSurface, fontFamily: "GoogleSansCode"),
), ),
subtitle: Text( subtitle: Text(
"at ${DateFormat("HH:mm:ss.SSS").format(logMessage.createdAt)} in ${logMessage.logger}", "at ${DateFormat("HH:mm:ss.SSS").format(logMessage.createdAt)} in ${logMessage.logger}",

View File

@@ -57,7 +57,7 @@ class AppLogDetailPage extends HookConsumerWidget {
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: SelectableText( child: SelectableText(
text, text,
style: const TextStyle(fontSize: 12.0, fontWeight: FontWeight.bold, fontFamily: "Inconsolata"), style: const TextStyle(fontSize: 12.0, fontWeight: FontWeight.bold, fontFamily: "GoogleSansCode"),
), ),
), ),
), ),
@@ -88,7 +88,7 @@ class AppLogDetailPage extends HookConsumerWidget {
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: SelectableText( child: SelectableText(
logger.toString(), logger.toString(),
style: const TextStyle(fontSize: 12.0, fontWeight: FontWeight.bold, fontFamily: "Inconsolata"), style: const TextStyle(fontSize: 12.0, fontWeight: FontWeight.bold, fontFamily: "GoogleSansCode"),
), ),
), ),
), ),

View File

@@ -234,7 +234,7 @@ class FolderPath extends StatelessWidget {
Text( Text(
currentFolder.path, currentFolder.path,
style: TextStyle( style: TextStyle(
fontFamily: 'Inconsolata', fontFamily: 'GoogleSansCode',
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontSize: 14, fontSize: 14,
color: context.colorScheme.onSurface.withAlpha(175), color: context.colorScheme.onSurface.withAlpha(175),

View File

@@ -41,7 +41,7 @@ class LoginPage extends HookConsumerWidget {
style: TextStyle( style: TextStyle(
color: context.colorScheme.onSurfaceSecondary, color: context.colorScheme.onSurfaceSecondary,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontFamily: "Inconsolata", fontFamily: "GoogleSansCode",
), ),
), ),
const Text(' '), const Text(' '),
@@ -51,7 +51,7 @@ class LoginPage extends HookConsumerWidget {
style: TextStyle( style: TextStyle(
color: context.primaryColor, color: context.primaryColor,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontFamily: "Inconsolata", fontFamily: "GoogleSansCode",
), ),
), ),
onTap: () { onTap: () {

View File

@@ -450,7 +450,7 @@ class _SegmentWidget extends StatelessWidget {
alignment: Alignment.center, alignment: Alignment.center,
child: Text( child: Text(
_segment.date.year.toString(), _segment.date.year.toString(),
style: context.textTheme.labelMedium?.copyWith(fontFamily: "OverpassMono", fontWeight: FontWeight.w600), style: context.textTheme.labelMedium?.copyWith(fontFamily: "GoogleSansCode", fontWeight: FontWeight.w600),
), ),
), ),
), ),

View File

@@ -147,9 +147,9 @@ ImmichTheme decolorizeSurfaces({required ImmichTheme theme}) {
} }
String? _getFontFamilyFromLocale(Locale locale) { String? _getFontFamilyFromLocale(Locale locale) {
if (localesNotSupportedByOverpass.contains(locale)) { if (localesNotSupportedByAppFont.contains(locale)) {
// Let Flutter use the default font // Let Flutter use the default font
return null; return null;
} }
return 'Overpass'; return 'GoogleSans';
} }

View File

@@ -58,7 +58,7 @@ class AdvancedBottomSheet extends HookConsumerWidget {
style: const TextStyle( style: const TextStyle(
fontSize: 12.0, fontSize: 12.0,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
fontFamily: "Inconsolata", fontFamily: "GoogleSansCode",
), ),
showCursor: true, showCursor: true,
), ),

View File

@@ -36,7 +36,7 @@ class BackupUploadProgressBar extends ConsumerWidget {
), ),
Text( Text(
" ${uploadProgress.toStringAsFixed(0)}%", " ${uploadProgress.toStringAsFixed(0)}%",
style: const TextStyle(fontSize: 12, fontFamily: "OverpassMono"), style: const TextStyle(fontSize: 12, fontFamily: "GoogleSansCode"),
), ),
], ],
), ),

View File

@@ -26,10 +26,10 @@ class BackupUploadStats extends ConsumerWidget {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text(uploadFileProgress, style: const TextStyle(fontSize: 10, fontFamily: "OverpassMono")), Text(uploadFileProgress, style: const TextStyle(fontSize: 10, fontFamily: "GoogleSansCode")),
Text( Text(
_formatUploadFileSpeed(uploadFileSpeed), _formatUploadFileSpeed(uploadFileSpeed),
style: const TextStyle(fontSize: 10, fontFamily: "OverpassMono"), style: const TextStyle(fontSize: 10, fontFamily: "GoogleSansCode"),
), ),
], ],
), ),

View File

@@ -43,7 +43,7 @@ class PinInput extends StatelessWidget {
final defaultPinTheme = PinTheme( final defaultPinTheme = PinTheme(
width: getPinSize().width, width: getPinSize().width,
height: getPinSize().height, height: getPinSize().height,
textStyle: TextStyle(fontSize: 24, color: context.colorScheme.onSurface, fontFamily: 'Overpass Mono'), textStyle: TextStyle(fontSize: 24, color: context.colorScheme.onSurface, fontFamily: 'GoogleSansCode'),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(19)), borderRadius: const BorderRadius.all(Radius.circular(19)),
border: Border.all(color: context.colorScheme.surfaceBright), border: Border.all(color: context.colorScheme.surfaceBright),

View File

@@ -50,7 +50,7 @@ class EntityCountTile extends StatelessWidget {
const Spacer(), const Spacer(),
RichText( RichText(
text: TextSpan( text: TextSpan(
style: const TextStyle(fontSize: 18, fontFamily: 'OverpassMono', fontWeight: FontWeight.w600), style: const TextStyle(fontSize: 18, fontFamily: 'GoogleSansCode', fontWeight: FontWeight.w600),
children: [ children: [
TextSpan( TextSpan(
text: zeroPadding(count, maxDigits), text: zeroPadding(count, maxDigits),

View File

@@ -117,7 +117,7 @@ class EndpointInputState extends ConsumerState<EndpointInput> {
autovalidateMode: AutovalidateMode.onUserInteraction, autovalidateMode: AutovalidateMode.onUserInteraction,
validator: validateUrl, validator: validateUrl,
keyboardType: TextInputType.url, keyboardType: TextInputType.url,
style: const TextStyle(fontFamily: 'Inconsolata', fontWeight: FontWeight.w600, fontSize: 14), style: const TextStyle(fontFamily: 'GoogleSansCode', fontWeight: FontWeight.w600, fontSize: 14),
decoration: InputDecoration( decoration: InputDecoration(
hintText: 'http(s)://immich.domain.com', hintText: 'http(s)://immich.domain.com',
contentPadding: const EdgeInsets.all(16), contentPadding: const EdgeInsets.all(16),

View File

@@ -155,7 +155,7 @@ class LocalNetworkPreference extends HookConsumerWidget {
style: context.textTheme.labelLarge?.copyWith( style: context.textTheme.labelLarge?.copyWith(
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: enabled ? context.primaryColor : context.colorScheme.onSurface.withAlpha(100), color: enabled ? context.primaryColor : context.colorScheme.onSurface.withAlpha(100),
fontFamily: 'Inconsolata', fontFamily: 'GoogleSansCode',
), ),
), ),
trailing: IconButton( trailing: IconButton(
@@ -175,7 +175,7 @@ class LocalNetworkPreference extends HookConsumerWidget {
style: context.textTheme.labelLarge?.copyWith( style: context.textTheme.labelLarge?.copyWith(
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: enabled ? context.primaryColor : context.colorScheme.onSurface.withAlpha(100), color: enabled ? context.primaryColor : context.colorScheme.onSurface.withAlpha(100),
fontFamily: 'Inconsolata', fontFamily: 'GoogleSansCode',
), ),
), ),
trailing: IconButton( trailing: IconButton(

View File

@@ -110,7 +110,7 @@ class NetworkingSettings extends HookConsumerWidget {
currentEndpoint ?? "--", currentEndpoint ?? "--",
style: TextStyle( style: TextStyle(
fontSize: 16, fontSize: 16,
fontFamily: 'Inconsolata', fontFamily: 'GoogleSansCode',
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: context.primaryColor, color: context.primaryColor,
), ),

View File

@@ -127,24 +127,26 @@ flutter:
assets: assets:
- assets/ - assets/
fonts: fonts:
- family: Inconsolata - family: GoogleSans
fonts: fonts:
- asset: fonts/Inconsolata-Regular.ttf - asset: fonts/GoogleSans/GoogleSans-Regular.ttf
- family: Overpass
fonts:
- asset: fonts/overpass/Overpass-Regular.ttf
weight: 400 weight: 400
- asset: fonts/overpass/Overpass-Italic.ttf - asset: fonts/GoogleSans/GoogleSans-Italic.ttf
style: italic style: italic
- asset: fonts/overpass/Overpass-Medium.ttf - asset: fonts/GoogleSans/GoogleSans-Medium.ttf
weight: 500 weight: 500
- asset: fonts/overpass/Overpass-SemiBold.ttf - asset: fonts/GoogleSans/GoogleSans-SemiBold.ttf
weight: 600 weight: 600
- asset: fonts/overpass/Overpass-Bold.ttf - asset: fonts/GoogleSans/GoogleSans-Bold.ttf
weight: 700 weight: 700
- family: OverpassMono - family: GoogleSansCode
fonts: fonts:
- asset: fonts/overpass/OverpassMono.ttf - asset: fonts/GoogleSansCode/GoogleSansCode-Regular.ttf
weight: 400
- asset: fonts/GoogleSansCode/GoogleSansCode-Medium.ttf
weight: 500
- asset: fonts/GoogleSansCode/GoogleSansCode-SemiBold.ttf
weight: 600
flutter_launcher_icons: flutter_launcher_icons:
image_path_android: 'assets/immich-logo.png' image_path_android: 'assets/immich-logo.png'
adaptive_icon_background: '#ffffff' adaptive_icon_background: '#ffffff'