From 315bb0a70919c825aaa425c8bfd9c3e7ef8a56fc Mon Sep 17 00:00:00 2001 From: Sudipto Chandra Date: Wed, 9 Jun 2021 09:21:05 +0600 Subject: [PATCH] Fix some issues and view --- lib/res/RobotoSlab-Light.ttf | Bin 0 -> 173088 bytes lib/res/pattern_back.jpg | Bin 0 -> 51952 bytes lib/src/blocs/repository.dart | 52 +++++- lib/src/pages/home_page.dart | 34 ++-- lib/src/pages/login_page.dart | 40 ++-- lib/src/pages/report_page.dart | 65 ++++--- lib/src/pages/widgets/error_message.dart | 9 +- lib/src/pages/widgets/home_page_drawer.dart | 172 ++++++++++++++++++ .../pages/widgets/product_form_dialog.dart | 9 +- lib/src/pages/widgets/product_item.dart | 10 +- lib/src/pages/widgets/report_view.dart | 15 ++ lib/src/pages/widgets/sale_form_dialog.dart | 7 +- lib/src/utils/formatters.dart | 13 +- pubspec.yaml | 6 +- 14 files changed, 353 insertions(+), 79 deletions(-) create mode 100644 lib/res/RobotoSlab-Light.ttf create mode 100644 lib/res/pattern_back.jpg create mode 100644 lib/src/pages/widgets/home_page_drawer.dart diff --git a/lib/res/RobotoSlab-Light.ttf b/lib/res/RobotoSlab-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b12a3ac0a48fb1b37f7eac97bcccba0c104e0498 GIT binary patch literal 173088 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%0APMJK06NkdBl8z!vi-zPV0{FM4!DLf%5d>;0{ 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 Qdb~1gPWpv;R(t*aAG_Cc&j0`b literal 0 HcmV?d00001 diff --git a/lib/res/pattern_back.jpg b/lib/res/pattern_back.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e5f763a5181fc835b86352b2542bfd7889ef496f GIT binary patch literal 51952 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%0D)?rZ_6Z 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 _products; late final CollectionReference _sales; + late final DocumentReference> _userDoc; Repository({required this.user}) { firestore = FirebaseFirestore.instance; - final userDoc = firestore.collection('users').doc(user.uid); - _products = userDoc.collection("products").withConverter( + _userDoc = firestore.collection('users').doc(user.uid); + _products = _userDoc.collection("products").withConverter( fromFirestore: (snap, _) => Product.fromJson(snap.id, snap.data()!), toFirestore: (model, _) => model.toJson(), ); - _sales = userDoc.collection("sales").withConverter( + _sales = _userDoc.collection("sales").withConverter( fromFirestore: (snap, _) => SalesRecord.fromJson(snap.id, snap.data()!), toFirestore: (model, _) => model.toJson(), ); + _saveUserData(_userDoc, user); } /// Get all products @@ -66,6 +69,41 @@ class Repository { ); } + void _saveUserData(DocumentReference doc, User user) { + doc.update({ + 'uid': user.uid, + 'email': user.email, + 'displayName': user.displayName, + 'phoneNumber': user.phoneNumber, + 'photoURL': user.photoURL, + 'tenantId': user.tenantId, + 'creationTime': user.metadata.creationTime?.millisecondsSinceEpoch, + 'lastSignInTime': user.metadata.lastSignInTime?.millisecondsSinceEpoch, + 'isAnonymous': user.isAnonymous, + }); + } + + Future matchPassword(String password) async { + final hash = sha256.convert(password.codeUnits).toString(); + final snapshot = await _userDoc.get(); + final data = snapshot.data() ?? {}; + if (!data.containsKey('password')) { + return false; + } + return hash == data['password']; + } + + Future savePassword(String oldPassword, String newPassword) async { + final oldHash = sha256.convert(oldPassword.codeUnits).toString(); + final newHash = sha256.convert(newPassword.codeUnits).toString(); + final snapshot = await _userDoc.get(); + final data = snapshot.data() ?? {}; + if (data.containsKey('password') && oldHash != data['password']) { + throw Exception('Password mismatch'); + } + await _userDoc.update({'password': newHash}); + } + Future> addProduct(Product product) { return _products.add(product); } @@ -92,4 +130,12 @@ class Repository { return _sales.add(sales); }); } + + Future clearAllData() async { + await _userDoc.delete(); + final sales = await _sales.get(); + final products = await _products.get(); + await Future.wait(products.docs.map((doc) => doc.reference.delete())); + await Future.wait(sales.docs.map((doc) => doc.reference.delete())); + } } diff --git a/lib/src/pages/home_page.dart b/lib/src/pages/home_page.dart index b41ad42..b25d0bb 100644 --- a/lib/src/pages/home_page.dart +++ b/lib/src/pages/home_page.dart @@ -3,8 +3,9 @@ import 'package:flutter/material.dart'; import 'package:sales_tracker/src/blocs/repository.dart'; import 'package:sales_tracker/src/models/product.dart'; import 'package:sales_tracker/src/pages/report_page.dart'; -import 'package:sales_tracker/src/pages/widgets/product_form_dialog.dart'; import 'package:sales_tracker/src/pages/widgets/error_message.dart'; +import 'package:sales_tracker/src/pages/widgets/home_page_drawer.dart'; +import 'package:sales_tracker/src/pages/widgets/product_form_dialog.dart'; import 'package:sales_tracker/src/pages/widgets/product_item.dart'; class HomePage extends StatelessWidget { @@ -14,6 +15,9 @@ class HomePage extends StatelessWidget { backgroundColor: Colors.grey[300], appBar: buildAppBar(context), floatingActionButton: buildAddItemButton(context), + drawer: Drawer( + child: HomePageDrawer(), + ), body: StreamBuilder>( stream: Repository.of(context).allProducts, builder: (context, snapshot) { @@ -64,26 +68,18 @@ class HomePage extends StatelessWidget { return AppBar( title: Text("Sales Tracker"), actions: [ - Container( - height: 26, - margin: EdgeInsets.all(10), - child: ElevatedButton.icon( - onPressed: () { - ReportPage.display(context); - }, - icon: Icon(Icons.history), - label: Text('Report'), - style: ButtonStyle( - elevation: MaterialStateProperty.all(0), - ), + ElevatedButton.icon( + onPressed: () => ReportPage.display(context), + icon: Icon(Icons.history), + label: Text('Report'), + style: ButtonStyle( + elevation: MaterialStateProperty.all(0), ), ), - IconButton( - onPressed: () { - FirebaseAuth.instance.signOut(); - }, - icon: Icon(Icons.logout), - ), + // IconButton( + // onPressed: () => FirebaseAuth.instance.signOut(), + // icon: Icon(Icons.logout), + // ), ], ); } diff --git a/lib/src/pages/login_page.dart b/lib/src/pages/login_page.dart index a496aee..c5e3960 100644 --- a/lib/src/pages/login_page.dart +++ b/lib/src/pages/login_page.dart @@ -2,6 +2,7 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:google_sign_in/google_sign_in.dart'; import 'package:rive/rive.dart'; +import 'package:sales_tracker/src/pages/widgets/error_message.dart'; class LoginPage extends StatelessWidget { @override @@ -19,7 +20,7 @@ class LoginPage extends StatelessWidget { color: Color(0xff62758d), padding: EdgeInsets.all(20), child: ElevatedButton( - onPressed: signInWithGoogle, + onPressed: () => signInWithGoogle(context), child: ListTile( title: Text('SIGN IN'), trailing: Icon(Icons.login), @@ -34,21 +35,32 @@ class LoginPage extends StatelessWidget { ); } - Future signInWithGoogle() async { - // Trigger the authentication flow - final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn(); + void signInWithGoogle(BuildContext context) async { + try { + // Trigger the authentication flow + final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn(); - // Obtain the auth details from the request - final GoogleSignInAuthentication googleAuth = - await googleUser!.authentication; + // Obtain the auth details from the request + final GoogleSignInAuthentication googleAuth = + await googleUser!.authentication; - // Create a new credential - final credential = GoogleAuthProvider.credential( - accessToken: googleAuth.accessToken, - idToken: googleAuth.idToken, - ); + // Create a new credential + final auth = GoogleAuthProvider.credential( + accessToken: googleAuth.accessToken, + idToken: googleAuth.idToken, + ); - // Once signed in, return the UserCredential - return await FirebaseAuth.instance.signInWithCredential(credential); + // Once signed in, return the UserCredential + await FirebaseAuth.instance.signInWithCredential(auth); + } catch (err) { + showDialog( + context: context, + builder: (_) => ErrorMessage( + messageText: 'Failed to sign in', + errorDetails: err, + onDismiss: () => Navigator.of(context).pop(), + ), + ); + } } } diff --git a/lib/src/pages/report_page.dart b/lib/src/pages/report_page.dart index 20358ff..15118eb 100644 --- a/lib/src/pages/report_page.dart +++ b/lib/src/pages/report_page.dart @@ -9,37 +9,36 @@ import 'package:sales_tracker/src/pages/widgets/report_view.dart'; import 'package:sales_tracker/src/utils/report_generate.dart'; class ReportPage extends StatelessWidget { - static Future display(BuildContext context) { + static Future display(BuildContext context) async { DateTime now = DateTime.now(); DateTime startOfMonth = DateTime(now.year, now.month); - return showDateRangePicker( + DateTimeRange? range = await showDateRangePicker( context: context, + saveText: 'Generate Report', firstDate: DateTime(now.year - 10), - lastDate: DateTime(now.year + 1).subtract(Duration(microseconds: 1)), + lastDate: DateTime(now.year + 10).subtract(Duration(microseconds: 1)), initialDateRange: DateTimeRange( start: startOfMonth, end: DateTime.now(), ), - helpText: 'View Report', - saveText: 'Generate', - useRootNavigator: false, - ).then((range) { - if (range == null) return null; - DateTime start = range.start; - DateTime end = range.end; - return Navigator.of(context).push( - MaterialPageRoute( - maintainState: true, - fullscreenDialog: false, - builder: (_) => ReportPage( - startDate: DateTime(start.year, start.month, start.day), - endDate: DateTime(end.year, end.month, end.day) - .add(Duration(days: 1)) - .subtract(Duration(milliseconds: 1)), - ), + ); + + if (range == null) return null; + DateTime start = range.start; + DateTime end = range.end; + + await Navigator.of(context).push( + MaterialPageRoute( + maintainState: true, + fullscreenDialog: false, + builder: (_) => ReportPage( + startDate: DateTime(start.year, start.month, start.day), + endDate: DateTime(end.year, end.month, end.day) + .add(Duration(days: 1)) + .subtract(Duration(milliseconds: 1)), ), - ); - }); + ), + ); } final DateTime startDate; @@ -54,6 +53,7 @@ class ReportPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( + backgroundColor: Colors.grey[300], appBar: AppBar( title: Text('Report'), ), @@ -82,13 +82,10 @@ class ReportPage extends StatelessWidget { } return Column( children: [ - Expanded(child: ReportView(snapshot.data!)), - ListTile( - tileColor: Colors.green, - title: Text('Save as PDF'), - trailing: Icon(Icons.save_alt), - onTap: () => _generatePdf(context, snapshot.data!), + Expanded( + child: ReportView(snapshot.data!), ), + buildSaveAsPdfButton(context, snapshot.data!), ], ); } @@ -96,6 +93,18 @@ class ReportPage extends StatelessWidget { ); } + Widget buildSaveAsPdfButton(BuildContext context, Report report) { + if (report.totalItems == 0) { + return Container(); + } + return ListTile( + tileColor: Colors.green, + title: Text('Save as PDF'), + trailing: Icon(Icons.save_alt), + onTap: () => _generatePdf(context, report), + ); + } + void _generatePdf(BuildContext context, Report report) async { Uint8List? result = await showDialog( context: context, diff --git a/lib/src/pages/widgets/error_message.dart b/lib/src/pages/widgets/error_message.dart index 1f4b049..28ca669 100644 --- a/lib/src/pages/widgets/error_message.dart +++ b/lib/src/pages/widgets/error_message.dart @@ -17,11 +17,15 @@ class ErrorMessage extends StatelessWidget { @override Widget build(BuildContext context) { return AlertDialog( - title: Text(titleText), + title: Text( + titleText, + style: TextStyle(color: Colors.redAccent), + ), elevation: 5, actionsPadding: EdgeInsets.symmetric(horizontal: 10), content: Column( mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(messageText), ] + @@ -43,11 +47,12 @@ class ErrorMessage extends StatelessWidget { Widget buildErrorDetails() { return Container( + padding: EdgeInsets.all(10), child: Text( '$errorDetails', style: TextStyle( + fontSize: 12, fontFamily: 'monospaced', - fontSize: 11, ), ), decoration: BoxDecoration( diff --git a/lib/src/pages/widgets/home_page_drawer.dart b/lib/src/pages/widgets/home_page_drawer.dart new file mode 100644 index 0000000..40f8483 --- /dev/null +++ b/lib/src/pages/widgets/home_page_drawer.dart @@ -0,0 +1,172 @@ +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:flutter/material.dart'; +import 'package:sales_tracker/src/blocs/repository.dart'; +import 'package:sales_tracker/src/pages/report_page.dart'; +import 'package:sales_tracker/src/pages/widgets/product_form_dialog.dart'; + +class HomePageDrawer extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('lib/res/pattern_back.jpg'), + alignment: Alignment.center, + fit: BoxFit.cover, + ), + ), + child: SafeArea( + child: Container( + padding: EdgeInsets.all(15), + child: Column( + children: [ + buildHeader(), + Divider(), + SizedBox(height: 10), + buildUserAvatar(), + SizedBox(height: 5), + buildUserName(), + SizedBox(height: 10), + Divider(), + SizedBox(height: 5), + Builder(builder: buildAddButton), + SizedBox(height: 5), + Builder(builder: buildReportButton), + Divider(), + Builder(builder: buildResetButton), + Spacer(), + Divider(), + buildLogoutButton(), + ], + ), + ), + ), + ); + } + + Widget buildHeader() { + return Text( + 'Sales Tracker', + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.deepOrange, + fontSize: 30, + fontWeight: FontWeight.w300, + ), + ); + } + + Widget buildUserAvatar() { + final user = FirebaseAuth.instance.currentUser; + if (user?.photoURL == null) return Container(); + return Container( + width: 80, + height: 80, + alignment: Alignment.center, + child: ClipOval( + child: Image.network( + user!.photoURL!, + fit: BoxFit.cover, + ), + ), + ); + } + + Widget buildUserName() { + final user = FirebaseAuth.instance.currentUser; + if (user?.displayName == null) return Container(); + return Text( + user!.displayName!, + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.blueGrey, + fontFamily: 'sans', + fontSize: 16, + fontWeight: FontWeight.w600, + ), + ); + } + + Widget buildLogoutButton() { + return ElevatedButton( + onPressed: () { + FirebaseAuth.instance.signOut(); + }, + child: Container( + padding: EdgeInsets.all(10), + child: Row( + children: [ + Text('Sign Out'), + Spacer(), + Icon(Icons.logout), + ], + ), + ), + ); + } + + Widget buildReportButton(BuildContext context) { + return ListTile( + tileColor: Colors.grey[100], + title: Text('View Report'), + leading: Icon(Icons.history), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5), + ), + onTap: () { + Navigator.of(context).pop(); + ReportPage.display(context); + }, + ); + } + + Widget buildAddButton(BuildContext context) { + return ListTile( + tileColor: Colors.grey[100], + title: Text('Add Product'), + leading: Icon(Icons.add), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5), + ), + onTap: () { + Navigator.of(context).pop(); + ProductFormDialog.display(context); + }, + ); + } + + Widget buildResetButton(BuildContext context) { + return ListTile( + tileColor: Colors.grey[100], + title: Text('Reset Data'), + leading: Icon(Icons.cleaning_services), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5), + ), + onTap: () { + Navigator.of(context).pop(); + showDialog( + context: context, + builder: (context) => AlertDialog( + title: Text('Confirm Reset'), + content: + Text('Resetting will clear all data you have entered so far!'), + actions: [ + TextButton( + child: Text('Continue'), + onPressed: () { + Navigator.of(context).pop(); + Repository.of(context).clearAllData(); + }, + ), + TextButton( + child: Text('Cancel'), + onPressed: () => Navigator.of(context).pop(), + ), + ], + ), + ); + }, + ); + } +} diff --git a/lib/src/pages/widgets/product_form_dialog.dart b/lib/src/pages/widgets/product_form_dialog.dart index ba4bbaf..b18b974 100644 --- a/lib/src/pages/widgets/product_form_dialog.dart +++ b/lib/src/pages/widgets/product_form_dialog.dart @@ -47,7 +47,7 @@ class ProductFormDialog extends StatelessWidget { child: Column( children: [ CircleAvatar( - radius: 48, + radius: 42, backgroundColor: Colors.black12, child: Icon( addMode ? Icons.add : Icons.edit, @@ -55,7 +55,7 @@ class ProductFormDialog extends StatelessWidget { size: 48, ), ), - SizedBox(height: 15), + SizedBox(height: 25), Builder(builder: buildDateInput), Builder(builder: buildNameInput), Builder(builder: buildUnitPriceInput), @@ -89,7 +89,7 @@ class ProductFormDialog extends StatelessWidget { context: context, fieldLabelText: 'Date', firstDate: DateTime(year - 10), - lastDate: DateTime(year + 1).subtract(Duration(microseconds: 1)), + lastDate: DateTime(year + 10).subtract(Duration(microseconds: 1)), initialDate: DateTime.now(), ).then((DateTime? value) { if (value != null) { @@ -123,7 +123,8 @@ class ProductFormDialog extends StatelessWidget { keyboardType: TextInputType.number, textInputAction: TextInputAction.next, decoration: InputDecoration( - labelText: 'Cost Per Unit', suffixIcon: Icon(Icons.attach_money)), + labelText: 'Cost Per Unit', + ), onEditingComplete: () { FocusScope.of(context).nextFocus(); }, diff --git a/lib/src/pages/widgets/product_item.dart b/lib/src/pages/widgets/product_item.dart index eb0731a..8659e1c 100644 --- a/lib/src/pages/widgets/product_item.dart +++ b/lib/src/pages/widgets/product_item.dart @@ -24,7 +24,7 @@ class ProductItemTile extends StatelessWidget { leading: buildQuantity(), subtitle: buildSubtitle(), trailing: buildPrice(), - onLongPress: () => SaleFormDialog.display(context, product), + onLongPress: () => _saleProduct(context), ), ), actions: [ @@ -44,7 +44,7 @@ class ProductItemTile extends StatelessWidget { caption: 'Sell', color: Colors.teal, icon: Icons.add_shopping_cart, - onTap: () => SaleFormDialog.display(context, product), + onTap: () => _saleProduct(context), ); } @@ -106,6 +106,12 @@ class ProductItemTile extends StatelessWidget { ); } + void _saleProduct(BuildContext context) { + if (product.quantity > 0) { + SaleFormDialog.display(context, product); + } + } + void _confirmAndDelete(BuildContext context) { showDialog( context: context, diff --git a/lib/src/pages/widgets/report_view.dart b/lib/src/pages/widgets/report_view.dart index 612fc7c..d272032 100644 --- a/lib/src/pages/widgets/report_view.dart +++ b/lib/src/pages/widgets/report_view.dart @@ -10,6 +10,10 @@ class ReportView extends StatelessWidget { @override Widget build(BuildContext context) { + if (report.totalItems == 0) { + return buildEmptyMessage(); + } + List children = []; report.groups.forEach((date, salesList) { children.add(buildGroupHeader(date)); @@ -51,6 +55,17 @@ class ReportView extends StatelessWidget { ); } + Widget buildEmptyMessage() { + return Container( + padding: EdgeInsets.all(15), + alignment: Alignment.center, + child: Text( + 'No sales record was found', + textAlign: TextAlign.center, + ), + ); + } + Widget buildGroupHeader(DateTime date) { return Row( children: [ diff --git a/lib/src/pages/widgets/sale_form_dialog.dart b/lib/src/pages/widgets/sale_form_dialog.dart index 9cc4569..a860710 100644 --- a/lib/src/pages/widgets/sale_form_dialog.dart +++ b/lib/src/pages/widgets/sale_form_dialog.dart @@ -44,7 +44,7 @@ class SaleFormDialog extends StatelessWidget { child: Column( children: [ CircleAvatar( - radius: 48, + radius: 42, backgroundColor: Colors.black12, child: Icon( Icons.shopping_cart, @@ -52,7 +52,7 @@ class SaleFormDialog extends StatelessWidget { size: 48, ), ), - SizedBox(height: 15), + SizedBox(height: 25), Builder(builder: buildDateInput), Builder(builder: buildUnitPriceInput), Builder(builder: buildQuantityInput), @@ -85,7 +85,7 @@ class SaleFormDialog extends StatelessWidget { context: context, fieldLabelText: 'Date', firstDate: DateTime(year - 10), - lastDate: DateTime(year + 1).subtract(Duration(microseconds: 1)), + lastDate: DateTime(year + 10).subtract(Duration(microseconds: 1)), initialDate: DateTime.now(), ).then((DateTime? value) { if (value != null) { @@ -103,7 +103,6 @@ class SaleFormDialog extends StatelessWidget { textInputAction: TextInputAction.next, decoration: InputDecoration( labelText: 'Selling Price Per Unit', - suffixIcon: Icon(Icons.attach_money), helperText: 'Cost per unit is ${product.unitPriceStr}', ), onEditingComplete: () { diff --git a/lib/src/utils/formatters.dart b/lib/src/utils/formatters.dart index 1df8e6e..b98db6a 100644 --- a/lib/src/utils/formatters.dart +++ b/lib/src/utils/formatters.dart @@ -1,6 +1,13 @@ String formatCurrency(double value) { - List chars = value.ceil().toString().codeUnits; + String sign = ''; + int intVal = value.ceil(); + if (intVal < 0) { + sign = '-'; + intVal = -intVal; + } + List result = []; + final chars = intVal.toString().codeUnits; for (int i = chars.length - 1; i >= 0; --i) { int p = chars.length - (i + 1); if (p > 0 && [3, 5, 0].contains(p % 7)) { @@ -8,5 +15,7 @@ String formatCurrency(double value) { } result.add(chars[i]); } - return String.fromCharCodes(result.reversed) + '/='; // '৳'; + + final formatted = String.fromCharCodes(result.reversed); + return sign + formatted + '/='; // '৳'; } diff --git a/pubspec.yaml b/pubspec.yaml index 33b4ecb..9cc9caa 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: sales_tracker description: A generic sales tracking application publish_to: 'none' # Remove this line if you wish to publish to pub.dev -version: 1.0.0+1 +version: 1.1.0+2 environment: sdk: ">=2.13.0 <3.0.0" @@ -29,8 +29,10 @@ dev_dependencies: flutter: uses-material-design: true assets: + - lib/res/pattern_back.jpg - lib/res/portable-table.riv - lib/res/RobotoSlab-Bold.ttf + - lib/res/RobotoSlab-Light.ttf - lib/res/RobotoSlab-Regular.ttf # An image asset can refer to one or more resolution-specific "variants", see @@ -50,6 +52,8 @@ flutter: - asset: lib/res/RobotoSlab-Regular.ttf - asset: lib/res/RobotoSlab-Bold.ttf weight: 700 + - asset: lib/res/RobotoSlab-Light.ttf + weight: 300 # - family: Trajan Pro # fonts: # - asset: fonts/TrajanPro.ttf