mirror of
https://github.com/meditohq/medito-app.git
synced 2024-10-26 20:03:25 +03:00
UI fixes 221223 (#652)
* Add foreground service media playback Required for android 14 (audio library) * Change serif font * Update serif font family * Update serif font * Update stat tiles style * Change shortcuts size * Fix quote layout * Fix header layout * Update home layout
This commit is contained in:
parent
8cb79663b2
commit
8f1c41ab68
@ -6,6 +6,7 @@
|
|||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"/>
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
|
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
|
||||||
|
Binary file not shown.
BIN
assets/fonts/source-serif/SourceSerif4-Bold.ttf
Normal file
BIN
assets/fonts/source-serif/SourceSerif4-Bold.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/source-serif/SourceSerif4-Medium.ttf
Normal file
BIN
assets/fonts/source-serif/SourceSerif4-Medium.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/source-serif/SourceSerif4-Regular.ttf
Normal file
BIN
assets/fonts/source-serif/SourceSerif4-Regular.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/source-serif/SourceSerif4-SemiBold.ttf
Normal file
BIN
assets/fonts/source-serif/SourceSerif4-SemiBold.ttf
Normal file
Binary file not shown.
@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
|
|
||||||
final String DmMono = 'DM Mono';
|
final String DmMono = 'DM Mono';
|
||||||
final String DmSans = 'DM Sans';
|
final String DmSans = 'DM Sans';
|
||||||
const String DmSerif = 'DM Serif';
|
const String SourceSerif = 'Source Serif';
|
||||||
const String materialIcons = 'MaterialIcons';
|
const String materialIcons = 'MaterialIcons';
|
||||||
const padding12 = 12.0;
|
const padding12 = 12.0;
|
||||||
const padding16 = 16.0;
|
const padding16 = 16.0;
|
||||||
|
@ -85,7 +85,7 @@ class _JoinEmailViewState extends ConsumerState<JoinEmailView> {
|
|||||||
StringConstants.whatsYourEmail,
|
StringConstants.whatsYourEmail,
|
||||||
style: textTheme.headlineMedium?.copyWith(
|
style: textTheme.headlineMedium?.copyWith(
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
height: 1.2,
|
height: 1.2,
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
),
|
),
|
||||||
|
@ -50,7 +50,7 @@ class JoinIntroView extends ConsumerWidget {
|
|||||||
StringConstants.joinTheMeditoFamily,
|
StringConstants.joinTheMeditoFamily,
|
||||||
style: textTheme.headlineMedium?.copyWith(
|
style: textTheme.headlineMedium?.copyWith(
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
height: 1.2,
|
height: 1.2,
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
),
|
),
|
||||||
|
@ -85,7 +85,7 @@ class _JoinVerifyOTPViewState extends ConsumerState<JoinVerifyOTPView> {
|
|||||||
StringConstants.verifyYourAccount,
|
StringConstants.verifyYourAccount,
|
||||||
style: textTheme.headlineMedium?.copyWith(
|
style: textTheme.headlineMedium?.copyWith(
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
height: 1.2,
|
height: 1.2,
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
),
|
),
|
||||||
@ -123,7 +123,7 @@ class _JoinVerifyOTPViewState extends ConsumerState<JoinVerifyOTPView> {
|
|||||||
),
|
),
|
||||||
textStyle: textTheme.displayMedium?.copyWith(
|
textStyle: textTheme.displayMedium?.copyWith(
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
),
|
),
|
||||||
enableActiveFill: true,
|
enableActiveFill: true,
|
||||||
|
@ -49,7 +49,7 @@ class JoinWelcomeView extends ConsumerWidget {
|
|||||||
StringConstants.thanksForJoining,
|
StringConstants.thanksForJoining,
|
||||||
style: textTheme.headlineMedium?.copyWith(
|
style: textTheme.headlineMedium?.copyWith(
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
height: 1.2,
|
height: 1.2,
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
),
|
),
|
||||||
|
@ -27,7 +27,7 @@ class DonationWidget extends ConsumerWidget {
|
|||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
donationModel.title ?? '',
|
donationModel.title ?? '',
|
||||||
style: bodyLarge?.copyWith(fontFamily: DmSerif, fontSize: 22),
|
style: bodyLarge?.copyWith(fontFamily: SourceSerif, fontSize: 22),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
height8,
|
height8,
|
||||||
|
@ -61,7 +61,7 @@ class _FeedbackWidgetState extends ConsumerState<FeedbackWidget> {
|
|||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
widget.feedbackModel.title ?? '',
|
widget.feedbackModel.title ?? '',
|
||||||
style: bodyLarge?.copyWith(fontFamily: DmSerif, fontSize: 22),
|
style: bodyLarge?.copyWith(fontFamily: SourceSerif, fontSize: 22),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
height8,
|
height8,
|
||||||
|
@ -60,13 +60,13 @@ class _HomeViewState extends ConsumerState<HomeView>
|
|||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
HeaderAndAnnouncementWidget(),
|
HeaderAndAnnouncementWidget(),
|
||||||
height16,
|
height20,
|
||||||
ShortcutsWidget(),
|
ShortcutsWidget(),
|
||||||
height24,
|
height20,
|
||||||
EditorialWidget(),
|
EditorialWidget(),
|
||||||
height24,
|
height20,
|
||||||
QuoteWidget(),
|
QuoteWidget(),
|
||||||
height24,
|
height20,
|
||||||
TilesWidget(),
|
TilesWidget(),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: 140,
|
height: 140,
|
||||||
@ -91,7 +91,7 @@ class _HomeViewState extends ConsumerState<HomeView>
|
|||||||
|
|
||||||
FloatingActionButton _buildFloatingButton(BuildContext context) {
|
FloatingActionButton _buildFloatingButton(BuildContext context) {
|
||||||
return FloatingActionButton.extended(
|
return FloatingActionButton.extended(
|
||||||
backgroundColor: ColorConstants.onyx,
|
backgroundColor: ColorConstants.lightPurple,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
context.push(RouteConstants.searchPath);
|
context.push(RouteConstants.searchPath);
|
||||||
},
|
},
|
||||||
@ -100,8 +100,10 @@ class _HomeViewState extends ConsumerState<HomeView>
|
|||||||
StringConstants.explore,
|
StringConstants.explore,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
fontSize: 20,
|
fontSize: 20,
|
||||||
|
fontWeight: FontWeight.w700,
|
||||||
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -33,7 +33,7 @@ class EditorialWidget extends ConsumerWidget {
|
|||||||
|
|
||||||
Padding _buildMain(BuildContext context, EditorialModel data) {
|
Padding _buildMain(BuildContext context, EditorialModel data) {
|
||||||
var titleStyle = Theme.of(context).textTheme.headlineSmall?.copyWith(
|
var titleStyle = Theme.of(context).textTheme.headlineSmall?.copyWith(
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
);
|
);
|
||||||
|
@ -18,14 +18,18 @@ class HomeHeaderWidget extends ConsumerWidget implements PreferredSizeWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
return SizedBox(
|
return SizedBox(
|
||||||
height: 56,
|
height: 72,
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
_welcomeWidget(context),
|
_welcomeWidget(context),
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
_menuWidget(context),
|
Padding(
|
||||||
|
padding: EdgeInsets.only(top: 34), // Add top padding
|
||||||
|
child: _menuWidget(context),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@ -60,7 +64,8 @@ class HomeHeaderWidget extends ConsumerWidget implements PreferredSizeWidget {
|
|||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
height: 0,
|
height: 0,
|
||||||
fontSize: 28,
|
fontSize: 28,
|
||||||
fontFamily: DmSerif,
|
fontWeight: FontWeight.w700,
|
||||||
|
fontFamily: SourceSerif,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -100,5 +105,5 @@ class HomeHeaderWidget extends ConsumerWidget implements PreferredSizeWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Size get preferredSize => Size.fromHeight(56.0);
|
Size get preferredSize => Size.fromHeight(72.0);
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,10 @@ class QuoteWidget extends ConsumerWidget {
|
|||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
var response = ref.watch(fetchQuoteProvider);
|
var response = ref.watch(fetchQuoteProvider);
|
||||||
var fontStyle = Theme.of(context).textTheme.bodyMedium?.copyWith(
|
var fontStyle = Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
fontSize: fontSize16,
|
||||||
|
height: 1.4,
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -21,6 +24,7 @@ class QuoteWidget extends ConsumerWidget {
|
|||||||
skipLoadingOnReload: true,
|
skipLoadingOnReload: true,
|
||||||
data: (data) {
|
data: (data) {
|
||||||
return Container(
|
return Container(
|
||||||
|
width: double.infinity,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(14),
|
borderRadius: BorderRadius.circular(14),
|
||||||
color: ColorConstants.onyx,
|
color: ColorConstants.onyx,
|
||||||
@ -34,6 +38,7 @@ class QuoteWidget extends ConsumerWidget {
|
|||||||
style: fontStyle,
|
style: fontStyle,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
|
height4,
|
||||||
Text(
|
Text(
|
||||||
'— ${data.author}',
|
'— ${data.author}',
|
||||||
style: fontStyle,
|
style: fontStyle,
|
||||||
|
@ -75,8 +75,8 @@ class _ShortcutsItemsWidgetState extends ConsumerState<ShortcutsItemsWidget> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return ReorderableWrap(
|
return ReorderableWrap(
|
||||||
spacing: 8.0,
|
spacing: 10.0,
|
||||||
runSpacing: 8.0,
|
runSpacing: 10.0,
|
||||||
padding: EdgeInsets.zero,
|
padding: EdgeInsets.zero,
|
||||||
maxMainAxisCount: 2,
|
maxMainAxisCount: 2,
|
||||||
minMainAxisCount: 2,
|
minMainAxisCount: 2,
|
||||||
@ -87,7 +87,7 @@ class _ShortcutsItemsWidgetState extends ConsumerState<ShortcutsItemsWidget> {
|
|||||||
|
|
||||||
List<Widget> _getShortcutsItemWidgetList() {
|
List<Widget> _getShortcutsItemWidgetList() {
|
||||||
var size = MediaQuery.of(context).size;
|
var size = MediaQuery.of(context).size;
|
||||||
final containerHeight = 48.0;
|
final containerHeight = 56.0;
|
||||||
final containerWidth = (size.width / 2) - (padding20 + 2);
|
final containerWidth = (size.width / 2) - (padding20 + 2);
|
||||||
|
|
||||||
return data.shortcuts
|
return data.shortcuts
|
||||||
|
@ -35,7 +35,8 @@ class TilesWidget extends ConsumerWidget {
|
|||||||
return Padding(
|
return Padding(
|
||||||
padding: const EdgeInsets.only(left: 4, right: padding20),
|
padding: const EdgeInsets.only(left: 4, right: padding20),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: data.map((e) {
|
children: data.map((e) {
|
||||||
var isFirstItem = data[0] == e;
|
var isFirstItem = data[0] == e;
|
||||||
|
|
||||||
@ -46,12 +47,21 @@ class TilesWidget extends ConsumerWidget {
|
|||||||
),
|
),
|
||||||
child: LayoutBuilder(
|
child: LayoutBuilder(
|
||||||
builder: (context, constraints) {
|
builder: (context, constraints) {
|
||||||
var fontSize = _getFontSize(constraints);
|
|
||||||
var fontStyle =
|
var titleFontStyle =
|
||||||
Theme.of(context).textTheme.bodyMedium?.copyWith(
|
Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||||
fontFamily: DmSerif,
|
fontFamily: DmMono,
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
fontSize: fontSize,
|
fontSize: 18,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
);
|
||||||
|
|
||||||
|
var subtitleFontStyle =
|
||||||
|
Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||||
|
fontFamily: DmSans,
|
||||||
|
color: ColorConstants.walterWhite,
|
||||||
|
fontSize: 14,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
);
|
);
|
||||||
|
|
||||||
return InkWell(
|
return InkWell(
|
||||||
@ -77,12 +87,12 @@ class TilesWidget extends ConsumerWidget {
|
|||||||
height8,
|
height8,
|
||||||
Text(
|
Text(
|
||||||
e.title,
|
e.title,
|
||||||
style: fontStyle,
|
style: titleFontStyle,
|
||||||
),
|
),
|
||||||
height4,
|
height4,
|
||||||
Text(
|
Text(
|
||||||
e.subtitle,
|
e.subtitle,
|
||||||
style: fontStyle,
|
style: subtitleFontStyle,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -97,16 +107,6 @@ class TilesWidget extends ConsumerWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
double _getFontSize(BoxConstraints constraints) {
|
|
||||||
final width = constraints.maxWidth;
|
|
||||||
var fontSize = fontSize16;
|
|
||||||
if (width <= smallScreenWidth) {
|
|
||||||
fontSize = fontSize14;
|
|
||||||
}
|
|
||||||
|
|
||||||
return fontSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
void _onTapTile(BuildContext context, WidgetRef ref) {
|
void _onTapTile(BuildContext context, WidgetRef ref) {
|
||||||
ref.invalidate(remoteStatsProvider);
|
ref.invalidate(remoteStatsProvider);
|
||||||
ref.read(remoteStatsProvider);
|
ref.read(remoteStatsProvider);
|
||||||
|
@ -118,7 +118,7 @@ class _NotificationPermissionViewState
|
|||||||
StringConstants.allowNotificationsTitle,
|
StringConstants.allowNotificationsTitle,
|
||||||
style: textTheme.headlineMedium?.copyWith(
|
style: textTheme.headlineMedium?.copyWith(
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
height: 1.2,
|
height: 1.2,
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
),
|
),
|
||||||
|
@ -42,7 +42,7 @@ class ArtistTitleWidget extends ConsumerWidget {
|
|||||||
child: Marquee(
|
child: Marquee(
|
||||||
text: trackTitle,
|
text: trackTitle,
|
||||||
style: Theme.of(context).primaryTextTheme.headlineMedium?.copyWith(
|
style: Theme.of(context).primaryTextTheme.headlineMedium?.copyWith(
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
fontSize: trackTitleFontSize,
|
fontSize: trackTitleFontSize,
|
||||||
letterSpacing: 0.2,
|
letterSpacing: 0.2,
|
||||||
|
@ -312,7 +312,7 @@ class _TrackViewState extends ConsumerState<TrackView>
|
|||||||
return Text(
|
return Text(
|
||||||
title,
|
title,
|
||||||
style: Theme.of(context).primaryTextTheme.titleLarge?.copyWith(
|
style: Theme.of(context).primaryTextTheme.titleLarge?.copyWith(
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
letterSpacing: 0.2,
|
letterSpacing: 0.2,
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
|
@ -26,7 +26,7 @@ class MeditoErrorWidget extends StatelessWidget {
|
|||||||
var textStyle = Theme.of(context).textTheme.headlineSmall?.copyWith(
|
var textStyle = Theme.of(context).textTheme.headlineSmall?.copyWith(
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
);
|
);
|
||||||
if (isScaffold) {
|
if (isScaffold) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
|
@ -70,7 +70,8 @@ class _MeditoAppBarLargeState extends State<MeditoAppBarLarge> {
|
|||||||
return Text(
|
return Text(
|
||||||
title,
|
title,
|
||||||
style: Theme.of(context).primaryTextTheme.titleLarge?.copyWith(
|
style: Theme.of(context).primaryTextTheme.titleLarge?.copyWith(
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
|
fontWeight: FontWeight.w700,
|
||||||
color: ColorConstants.walterWhite,
|
color: ColorConstants.walterWhite,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -59,7 +59,7 @@ class PackCardWidget extends StatelessWidget {
|
|||||||
return Text(
|
return Text(
|
||||||
'$title',
|
'$title',
|
||||||
style: textTheme.displayLarge?.copyWith(
|
style: textTheme.displayLarge?.copyWith(
|
||||||
fontFamily: DmSerif,
|
fontFamily: SourceSerif,
|
||||||
height: 0,
|
height: 0,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
10
pubspec.yaml
10
pubspec.yaml
@ -87,16 +87,16 @@ flutter:
|
|||||||
- .staging.env
|
- .staging.env
|
||||||
- assets/images/
|
- assets/images/
|
||||||
fonts:
|
fonts:
|
||||||
|
- family: Source Serif
|
||||||
- family: DM Serif
|
|
||||||
fonts:
|
fonts:
|
||||||
- asset: assets/fonts/dm-serif/DMSerifDisplay-Regular.ttf
|
- asset: assets/fonts/source-serif/SourceSerif4-Regular.ttf
|
||||||
|
- asset: assets/fonts/source-serif/SourceSerif4-Medium.ttf
|
||||||
|
- asset: assets/fonts/source-serif/SourceSerif4-SemiBold.ttf
|
||||||
|
- asset: assets/fonts/source-serif/SourceSerif4-Bold.ttf
|
||||||
- family: DM Mono
|
- family: DM Mono
|
||||||
fonts:
|
fonts:
|
||||||
- asset: assets/fonts/dm-mono/DMMono-Medium.ttf
|
- asset: assets/fonts/dm-mono/DMMono-Medium.ttf
|
||||||
- asset: assets/fonts/dm-mono/DMMono-Regular.ttf
|
- asset: assets/fonts/dm-mono/DMMono-Regular.ttf
|
||||||
|
|
||||||
- family: DM Sans
|
- family: DM Sans
|
||||||
fonts:
|
fonts:
|
||||||
- asset: assets/fonts/dm-sans/DMSans-Bold.ttf
|
- asset: assets/fonts/dm-sans/DMSans-Bold.ttf
|
||||||
|
Loading…
Reference in New Issue
Block a user