mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
feat(mobile): 2026 font (#25213)
This commit is contained in:
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.
Binary file not shown.
@@ -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')];
|
||||||
|
|||||||
@@ -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}",
|
||||||
|
|||||||
@@ -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"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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: () {
|
||||||
|
|||||||
@@ -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),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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"),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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"),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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,
|
||||||
),
|
),
|
||||||
|
|||||||
+13
-11
@@ -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'
|
||||||
|
|||||||
Reference in New Issue
Block a user