Consolidates UI components into a centralized components.css file Removes duplicate styles across multiple CSS files Adds utility classes in a new utilities.css file Reduces overall CSS complexity and improves maintainability Removes quick-stats.css and redistributes its styles Updates layout and stylesheet references accordingly
807 lines
No EOL
30 KiB
HTML
807 lines
No EOL
30 KiB
HTML
|
|
<!DOCTYPE html>
|
|
<html lang="da">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>CSS Analysis Report - PlanTempus</title>
|
|
<style>
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
body {
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
line-height: 1.6;
|
|
color: #333;
|
|
background: #f5f5f5;
|
|
padding: 20px;
|
|
}
|
|
.container {
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
background: white;
|
|
padding: 40px;
|
|
border-radius: 8px;
|
|
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
|
|
}
|
|
h1 {
|
|
color: #14b8a6;
|
|
margin-bottom: 10px;
|
|
font-size: 2.5em;
|
|
}
|
|
.subtitle {
|
|
color: #666;
|
|
margin-bottom: 30px;
|
|
font-size: 1.1em;
|
|
}
|
|
.summary {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
gap: 20px;
|
|
margin-bottom: 40px;
|
|
}
|
|
.stat-card {
|
|
background: linear-gradient(135deg, #14b8a6 0%, #0d9488 100%);
|
|
color: white;
|
|
padding: 20px;
|
|
border-radius: 8px;
|
|
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
|
|
}
|
|
.stat-card.warning {
|
|
background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
|
|
}
|
|
.stat-card.info {
|
|
background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
|
|
}
|
|
.stat-card.success {
|
|
background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
|
|
}
|
|
.stat-value {
|
|
font-size: 2.5em;
|
|
font-weight: bold;
|
|
margin: 10px 0;
|
|
}
|
|
.stat-label {
|
|
font-size: 0.9em;
|
|
opacity: 0.9;
|
|
}
|
|
section {
|
|
margin-bottom: 40px;
|
|
}
|
|
h2 {
|
|
color: #333;
|
|
margin-bottom: 20px;
|
|
padding-bottom: 10px;
|
|
border-bottom: 2px solid #14b8a6;
|
|
}
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin-top: 20px;
|
|
}
|
|
th, td {
|
|
padding: 12px;
|
|
text-align: left;
|
|
border-bottom: 1px solid #ddd;
|
|
}
|
|
th {
|
|
background: #f8f9fa;
|
|
font-weight: 600;
|
|
color: #555;
|
|
}
|
|
tr:hover {
|
|
background: #f8f9fa;
|
|
}
|
|
.file-detail {
|
|
background: #f8f9fa;
|
|
padding: 15px;
|
|
border-radius: 4px;
|
|
margin-bottom: 15px;
|
|
}
|
|
.rejected-list {
|
|
max-height: 200px;
|
|
overflow-y: auto;
|
|
background: white;
|
|
padding: 10px;
|
|
border-radius: 4px;
|
|
margin-top: 10px;
|
|
font-family: 'Courier New', monospace;
|
|
font-size: 0.9em;
|
|
}
|
|
.badge {
|
|
display: inline-block;
|
|
padding: 4px 8px;
|
|
border-radius: 4px;
|
|
font-size: 0.85em;
|
|
font-weight: 600;
|
|
}
|
|
.badge-danger { background: #ffebee; color: #c62828; }
|
|
.badge-warning { background: #fff3e0; color: #ef6c00; }
|
|
.badge-success { background: #e8f5e9; color: #2e7d32; }
|
|
.timestamp {
|
|
color: #999;
|
|
font-size: 0.9em;
|
|
margin-top: 30px;
|
|
text-align: center;
|
|
}
|
|
.color-palette {
|
|
display: flex;
|
|
gap: 5px;
|
|
flex-wrap: wrap;
|
|
margin-top: 10px;
|
|
}
|
|
.color-swatch {
|
|
width: 30px;
|
|
height: 30px;
|
|
border-radius: 4px;
|
|
border: 1px solid #ddd;
|
|
}
|
|
details {
|
|
margin-top: 10px;
|
|
}
|
|
summary {
|
|
cursor: pointer;
|
|
color: #14b8a6;
|
|
font-weight: 500;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<h1>📊 CSS Analysis Report</h1>
|
|
<p class="subtitle">PlanTempus - Production CSS Analysis</p>
|
|
|
|
<div class="summary">
|
|
<div class="stat-card">
|
|
<div class="stat-label">Total CSS Size</div>
|
|
<div class="stat-value">134.17 KB</div>
|
|
</div>
|
|
<div class="stat-card info">
|
|
<div class="stat-label">CSS Files</div>
|
|
<div class="stat-value">22</div>
|
|
</div>
|
|
<div class="stat-card info">
|
|
<div class="stat-label">Total Lines</div>
|
|
<div class="stat-value">6.124</div>
|
|
</div>
|
|
<div class="stat-card warning">
|
|
<div class="stat-label">Unused CSS Rules</div>
|
|
<div class="stat-value">87</div>
|
|
</div>
|
|
</div>
|
|
|
|
<section>
|
|
<h2>📈 CSS Statistics by File</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>File</th>
|
|
<th>Size</th>
|
|
<th>Lines</th>
|
|
<th>Rules</th>
|
|
<th>Selectors</th>
|
|
<th>Properties</th>
|
|
<th>CSS Vars</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
<tr>
|
|
<td><strong>auth.css</strong></td>
|
|
<td>20.41 KB</td>
|
|
<td>994</td>
|
|
<td>145</td>
|
|
<td>149</td>
|
|
<td>488</td>
|
|
<td>43</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>cash.css</strong></td>
|
|
<td>16.75 KB</td>
|
|
<td>782</td>
|
|
<td>114</td>
|
|
<td>117</td>
|
|
<td>359</td>
|
|
<td>39</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>employees.css</strong></td>
|
|
<td>15.02 KB</td>
|
|
<td>694</td>
|
|
<td>100</td>
|
|
<td>103</td>
|
|
<td>327</td>
|
|
<td>37</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>components.css</strong></td>
|
|
<td>9.23 KB</td>
|
|
<td>426</td>
|
|
<td>63</td>
|
|
<td>63</td>
|
|
<td>185</td>
|
|
<td>39</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>design-tokens.css</strong></td>
|
|
<td>9.02 KB</td>
|
|
<td>318</td>
|
|
<td>35</td>
|
|
<td>36</td>
|
|
<td>192</td>
|
|
<td>25</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>account.css</strong></td>
|
|
<td>7.31 KB</td>
|
|
<td>335</td>
|
|
<td>47</td>
|
|
<td>50</td>
|
|
<td>146</td>
|
|
<td>30</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>drawers.css</strong></td>
|
|
<td>6.36 KB</td>
|
|
<td>297</td>
|
|
<td>38</td>
|
|
<td>38</td>
|
|
<td>159</td>
|
|
<td>32</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>stats.css</strong></td>
|
|
<td>5.87 KB</td>
|
|
<td>262</td>
|
|
<td>34</td>
|
|
<td>36</td>
|
|
<td>93</td>
|
|
<td>30</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>sidebar.css</strong></td>
|
|
<td>5.72 KB</td>
|
|
<td>247</td>
|
|
<td>30</td>
|
|
<td>30</td>
|
|
<td>119</td>
|
|
<td>24</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>page.css</strong></td>
|
|
<td>5.07 KB</td>
|
|
<td>231</td>
|
|
<td>31</td>
|
|
<td>33</td>
|
|
<td>92</td>
|
|
<td>33</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>waitlist.css</strong></td>
|
|
<td>4.63 KB</td>
|
|
<td>211</td>
|
|
<td>25</td>
|
|
<td>25</td>
|
|
<td>101</td>
|
|
<td>28</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>bookings.css</strong></td>
|
|
<td>4.34 KB</td>
|
|
<td>177</td>
|
|
<td>28</td>
|
|
<td>28</td>
|
|
<td>75</td>
|
|
<td>27</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>topbar.css</strong></td>
|
|
<td>3.79 KB</td>
|
|
<td>181</td>
|
|
<td>19</td>
|
|
<td>19</td>
|
|
<td>103</td>
|
|
<td>20</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>controls.css</strong></td>
|
|
<td>3.32 KB</td>
|
|
<td>149</td>
|
|
<td>19</td>
|
|
<td>19</td>
|
|
<td>79</td>
|
|
<td>20</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>demo-banner.css</strong></td>
|
|
<td>2.94 KB</td>
|
|
<td>146</td>
|
|
<td>19</td>
|
|
<td>21</td>
|
|
<td>66</td>
|
|
<td>9</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>attentions.css</strong></td>
|
|
<td>2.92 KB</td>
|
|
<td>115</td>
|
|
<td>15</td>
|
|
<td>15</td>
|
|
<td>45</td>
|
|
<td>15</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>design-system.css</strong></td>
|
|
<td>2.30 KB</td>
|
|
<td>105</td>
|
|
<td>20</td>
|
|
<td>20</td>
|
|
<td>37</td>
|
|
<td>20</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>tabs.css</strong></td>
|
|
<td>2.13 KB</td>
|
|
<td>95</td>
|
|
<td>11</td>
|
|
<td>11</td>
|
|
<td>42</td>
|
|
<td>19</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>base.css</strong></td>
|
|
<td>2.06 KB</td>
|
|
<td>119</td>
|
|
<td>15</td>
|
|
<td>15</td>
|
|
<td>47</td>
|
|
<td>8</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>utilities.css</strong></td>
|
|
<td>2.03 KB</td>
|
|
<td>119</td>
|
|
<td>24</td>
|
|
<td>24</td>
|
|
<td>44</td>
|
|
<td>9</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>notifications.css</strong></td>
|
|
<td>1.67 KB</td>
|
|
<td>70</td>
|
|
<td>8</td>
|
|
<td>8</td>
|
|
<td>27</td>
|
|
<td>8</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><strong>app-layout.css</strong></td>
|
|
<td>1.28 KB</td>
|
|
<td>51</td>
|
|
<td>5</td>
|
|
<td>5</td>
|
|
<td>18</td>
|
|
<td>6</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>🗑️ Unused CSS by File</h2>
|
|
|
|
<div class="file-detail">
|
|
<h3>design-tokens.css</h3>
|
|
<p>
|
|
<span class="badge badge-warning">
|
|
24 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 7917 | After purge: 7639
|
|
</span>
|
|
</p>
|
|
|
|
<details>
|
|
<summary>Show unused selectors</summary>
|
|
<div class="rejected-list">
|
|
.is-red<br>.is-pink<br>.is-magenta<br>.is-purple<br>.is-violet<br>.is-deep-purple<br>.is-indigo<br>.is-blue<br>.is-light-blue<br>.is-cyan<br>.is-teal<br>.is-green<br>.is-light-green<br>.is-lime<br>.is-yellow<br>.is-amber<br>.is-orange<br>.is-deep-orange<br>.status-confirmed<br>.status-pending<br>.status-inprogress<br>.status-error<br>.status-active<br>.status-inactive
|
|
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>utilities.css</h3>
|
|
<p>
|
|
<span class="badge badge-warning">
|
|
23 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 1001 | After purge: 784
|
|
</span>
|
|
</p>
|
|
|
|
<details>
|
|
<summary>Show unused selectors</summary>
|
|
<div class="rejected-list">
|
|
.flex-center<br>.flex-between<br>.flex-start<br>.flex-end<br>.flex-column<br>.flex-1<br>.flex-shrink-0<br>.text-truncate<br>.text-center<br>.text-right<br>.text-secondary<br>.text-muted<br>.text-mono<br>.gap-2<br>.gap-3<br>.gap-4<br>.gap-6<br>.gap-8<br>.mt-auto<br>.mb-0<br>.sr-only<br>.w-full<br>.min-w-0
|
|
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>design-system.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
11 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 2095 | After purge: 2056
|
|
</span>
|
|
</p>
|
|
|
|
<details>
|
|
<summary>Show unused selectors</summary>
|
|
<div class="rejected-list">
|
|
h2<br> h3<br> h4<br> h5<br> h6<br>h2<br>h3<br>h4<br>h5<br>h6<br>:focus-visible
|
|
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>components.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
7 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 8905 | After purge: 8780
|
|
</span>
|
|
</p>
|
|
|
|
<details>
|
|
<summary>Show unused selectors</summary>
|
|
<div class="rejected-list">
|
|
swp-btn.social<br>swp-btn.social:hover<br>swp-btn.social img<br>swp-plan-badge.free<br>swp-avatar.size-xs<br>swp-avatar.size-sm<br>swp-avatar.size-lg
|
|
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>bookings.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
6 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 3998 | After purge: 3830
|
|
</span>
|
|
</p>
|
|
|
|
<details>
|
|
<summary>Show unused selectors</summary>
|
|
<div class="rejected-list">
|
|
swp-booking-item.inprogress<br>swp-booking-indicator.green<br>swp-booking-status.confirmed<br>swp-booking-status.pending<br>swp-booking-status.inprogress<br>
|
|
swp-booking-status.in-progress
|
|
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>attentions.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
5 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 2524 | After purge: 2359
|
|
</span>
|
|
</p>
|
|
|
|
<details>
|
|
<summary>Show unused selectors</summary>
|
|
<div class="rejected-list">
|
|
swp-attention-item.urgent<br>swp-attention-item.urgent:hover<br>swp-attention-item.info<br>swp-attention-item.urgent swp-attention-icon<br>swp-attention-item.info swp-attention-icon
|
|
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>base.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
4 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 1952 | After purge: 1930
|
|
</span>
|
|
</p>
|
|
|
|
<details>
|
|
<summary>Show unused selectors</summary>
|
|
<div class="rejected-list">
|
|
ul<br> ol<br>img<br>:focus-visible
|
|
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>stats.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
3 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 6010 | After purge: 5941
|
|
</span>
|
|
</p>
|
|
|
|
<details>
|
|
<summary>Show unused selectors</summary>
|
|
<div class="rejected-list">
|
|
swp-stat-trend.up<br>swp-stat-trend.down<br>
|
|
swp-stat-card.red swp-stat-value
|
|
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>account.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
2 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 7277 | After purge: 7225
|
|
</span>
|
|
</p>
|
|
|
|
<details>
|
|
<summary>Show unused selectors</summary>
|
|
<div class="rejected-list">
|
|
swp-invoice-status.pending<br>swp-invoice-status.overdue
|
|
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>drawers.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
1 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 6485 | After purge: 6467
|
|
</span>
|
|
</p>
|
|
|
|
<details>
|
|
<summary>Show unused selectors</summary>
|
|
<div class="rejected-list">
|
|
[data-drawer="xl"]
|
|
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>cash.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
1 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 17121 | After purge: 17083
|
|
</span>
|
|
</p>
|
|
|
|
<details>
|
|
<summary>Show unused selectors</summary>
|
|
<div class="rejected-list">
|
|
swp-cash-stat.user swp-cash-stat-value
|
|
|
|
</div>
|
|
</details>
|
|
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>waitlist.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
0 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 4737 | After purge: 4737
|
|
</span>
|
|
</p>
|
|
<p style="color: #2e7d32; margin-top: 10px;">✅ No unused CSS found!</p>
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>topbar.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
0 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 3885 | After purge: 3885
|
|
</span>
|
|
</p>
|
|
<p style="color: #2e7d32; margin-top: 10px;">✅ No unused CSS found!</p>
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>tabs.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
0 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 2183 | After purge: 2183
|
|
</span>
|
|
</p>
|
|
<p style="color: #2e7d32; margin-top: 10px;">✅ No unused CSS found!</p>
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>sidebar.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
0 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 5859 | After purge: 5859
|
|
</span>
|
|
</p>
|
|
<p style="color: #2e7d32; margin-top: 10px;">✅ No unused CSS found!</p>
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>page.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
0 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 5193 | After purge: 5193
|
|
</span>
|
|
</p>
|
|
<p style="color: #2e7d32; margin-top: 10px;">✅ No unused CSS found!</p>
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>notifications.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
0 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 1712 | After purge: 1712
|
|
</span>
|
|
</p>
|
|
<p style="color: #2e7d32; margin-top: 10px;">✅ No unused CSS found!</p>
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>employees.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
0 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 15383 | After purge: 15383
|
|
</span>
|
|
</p>
|
|
<p style="color: #2e7d32; margin-top: 10px;">✅ No unused CSS found!</p>
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>demo-banner.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
0 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 3014 | After purge: 3014
|
|
</span>
|
|
</p>
|
|
<p style="color: #2e7d32; margin-top: 10px;">✅ No unused CSS found!</p>
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>controls.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
0 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 3397 | After purge: 3397
|
|
</span>
|
|
</p>
|
|
<p style="color: #2e7d32; margin-top: 10px;">✅ No unused CSS found!</p>
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>auth.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
0 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 20895 | After purge: 20895
|
|
</span>
|
|
</p>
|
|
<p style="color: #2e7d32; margin-top: 10px;">✅ No unused CSS found!</p>
|
|
</div>
|
|
|
|
<div class="file-detail">
|
|
<h3>app-layout.css</h3>
|
|
<p>
|
|
<span class="badge badge-success">
|
|
0 unused rules
|
|
</span>
|
|
<span style="margin-left: 10px; color: #666;">
|
|
Original: 1306 | After purge: 1306
|
|
</span>
|
|
</p>
|
|
<p style="color: #2e7d32; margin-top: 10px;">✅ No unused CSS found!</p>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
<section>
|
|
<h2>💡 Recommendations</h2>
|
|
<ul style="line-height: 2;">
|
|
<li>✅ CSS usage is relatively clean.</li>
|
|
|
|
<li>📦 Consider consolidating similar styles to reduce duplication.</li>
|
|
<li>🎨 Review color usage - ensure all colors use CSS variables from design-tokens.css.</li>
|
|
<li>📋 Reference COMPONENT-CATALOG.md when adding new components to avoid duplication.</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<p class="timestamp">Report generated: 12.1.2026, 23.25.14</p>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
|