favicon and simple styling

This commit is contained in:
Joe Arndt 2026-02-23 18:44:38 -06:00
parent f2226b2bfd
commit 598377d8d0
17 changed files with 113 additions and 7 deletions

BIN
public/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

BIN
public/favicon-96x96.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

17
public/favicon.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 37 KiB

21
public/site.webmanifest Normal file
View file

@ -0,0 +1,21 @@
{
"name": "Common Cents",
"short_name": "Common Cents",
"icons": [
{
"src": "/web-app-manifest-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/web-app-manifest-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View file

@ -2,6 +2,7 @@
<header class="app-header"> <header class="app-header">
<h1>Common Cents</h1> <h1>Common Cents</h1>
<h2>The common sense expense tracker.</h2> <h2>The common sense expense tracker.</h2>
<app-divider />
</header> </header>
<main class="app-content"> <main class="app-content">

View file

@ -2,6 +2,17 @@
padding: 0.5rem; padding: 0.5rem;
} }
.app-header {
padding: 0.5rem;
display: flex;
flex-direction: column;
align-items: center;
app-divider {
width: 100%;
}
}
h1 { h1 {
font-size: 3.125rem; font-size: 3.125rem;
line-height: 100%; line-height: 100%;

View file

@ -1,9 +1,10 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router'; import { RouterOutlet } from '@angular/router';
import { Divider } from './components/divider/divider';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
imports: [RouterOutlet], imports: [RouterOutlet, Divider],
templateUrl: './app.html', templateUrl: './app.html',
styleUrl: './app.scss' styleUrl: './app.scss'
}) })

View file

@ -0,0 +1 @@
<div class="divider"></div>

View file

@ -0,0 +1,4 @@
.divider {
padding-top: 1rem;
border-bottom: 1px #80808042 solid;
}

View file

@ -0,0 +1,9 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-divider',
imports: [],
templateUrl: './divider.html',
styleUrl: './divider.scss'
})
export class Divider { }

View file

@ -1,6 +1,17 @@
<div class="expense-list-container"> <div class="expense-list-container">
<h2>Expenses</h2> <div class="expense-list-header">
<p>Expenses</p>
<app-divider />
</div>
<div class="expense-list">
@for (expense of expenses(); track expense.id) { @for (expense of expenses(); track expense.id) {
<app-expense [expense]="expense" /> <app-expense [expense]="expense" />
} }
@if (!expenses().length) {
<div class="expense-list-empty">
No expenses to display
</div>
}
</div>
</div> </div>

View file

@ -2,3 +2,28 @@
display: grid; display: grid;
gap: 1rem; gap: 1rem;
} }
.expense-list-header {
padding-top: 1rem;
display: flex;
flex-direction: column;
align-items: center;
p {
font-size: 1.8rem;
line-height: 100%;
font-weight: 200;
margin: 0;
font-family: sans-serif;
}
app-divider {
width: 100%;
}
}
.expense-list {
display: grid;
gap: 1rem;
justify-content: center;
}

View file

@ -3,10 +3,11 @@ import { ExpenseService } from '../../services/expense.service';
import { MatTableModule } from '@angular/material/table'; import { MatTableModule } from '@angular/material/table';
import { MatCardModule } from '@angular/material/card'; import { MatCardModule } from '@angular/material/card';
import { ExpenseComponent } from '../expense/expense.component'; import { ExpenseComponent } from '../expense/expense.component';
import {Divider} from '../divider/divider';
@Component({ @Component({
selector: 'app-expense-list', selector: 'app-expense-list',
imports: [MatTableModule, MatCardModule, ExpenseComponent], imports: [MatTableModule, MatCardModule, ExpenseComponent, Divider],
templateUrl: './expense-list.component.html', templateUrl: './expense-list.component.html',
styleUrl: './expense-list.component.scss' styleUrl: './expense-list.component.scss'
}) })

View file

@ -5,7 +5,11 @@
<title>Common Cents</title> <title>Common Cents</title>
<base href="/"> <base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico"> <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">