Skip to content

Commit f219f0b

Browse files
committed
Refactor UI components for improved styling and layout consistency
- Updated the G-Lorem component to enhance the layout and styling, including gradient backgrounds and improved control panel designs. - Refined the Time Zones component with a new layout structure, including gradient headers and stat item displays. - Introduced new SCSS mixins for better code reusability and maintainability across components. - Updated the sitemap with new URLs and modified last modified dates for existing entries. - Enhanced form input styles and action button designs for a more cohesive user experience.
1 parent 080b678 commit f219f0b

18 files changed

Lines changed: 606 additions & 810 deletions
Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1 @@
1-
:host {
2-
display: flex;
3-
flex-direction: column;
4-
flex-grow: 1;
5-
}
1+
/* No component-specific styles needed */

src/app/converters/c-json-yaml/c-json-yaml.component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ import { ConvertViewComponent } from '../convert-view/convert-view.component';
1111
styleUrls: ['./c-json-yaml.component.scss'],
1212
providers: [{ provide: ConverterServiceBase, useClass: JsonToYamlConverter }],
1313
imports: [CommonModule, FormsModule, ConvertViewComponent],
14+
host: { class: 'host-flex-container' }
1415
})
1516
export class CJsonYamlComponent {}
Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1 @@
1-
:host {
2-
display: flex;
3-
flex-direction: column;
4-
flex-grow: 1;
5-
}
1+
/* No component-specific styles needed */

src/app/formatters/f-json/f-json.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import { FormatViewComponent } from '../format-view/format-view.component';
1010
templateUrl: './f-json.component.html',
1111
styleUrls: ['./f-json.component.scss'],
1212
providers: [{ provide: FormatViewService, useClass: JsonFormatProvider }],
13-
imports: [CommonModule, FormsModule, FormatViewComponent]
13+
imports: [CommonModule, FormsModule, FormatViewComponent],
14+
host: { class: 'host-flex-container' }
1415
})
1516
export class FJsonComponent {
1617

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1 @@
1-
:host {
2-
display: flex;
3-
flex-direction: column;
4-
flex-grow: 1;
5-
}
1+
/* No component-specific styles needed */

src/app/formatters/f-sql/f-sql.component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ import { FormatViewComponent } from '../format-view/format-view.component';
1010
styleUrls: ['./f-sql.component.scss'],
1111
providers: [{ provide: FormatViewService, useClass: SqlFormatProvider }],
1212
imports: [CommonModule, FormsModule, FormatViewComponent],
13+
host: { class: 'host-flex-container' }
1314
})
1415
export class FSqlComponent {}

src/app/generators/g-guid/g-guid.component.scss

Lines changed: 0 additions & 239 deletions
Original file line numberDiff line numberDiff line change
@@ -1,149 +1,8 @@
1-
:host {
2-
display: flex;
3-
flex-direction: column;
4-
flex-grow: 1;
5-
height: 100%;
6-
overflow: hidden;
7-
}
8-
9-
.generator-container {
10-
display: flex;
11-
flex-direction: column;
12-
height: 100%;
13-
gap: 1.5rem;
14-
padding: 1.5rem;
15-
max-width: 100%;
16-
}
17-
18-
/* Tool Header */
19-
.tool-header {
20-
display: flex;
21-
justify-content: space-between;
22-
align-items: center;
23-
gap: 2rem;
24-
padding: 1.5rem;
25-
background: linear-gradient(135deg,
26-
rgba(80, 250, 123, 0.1) 0%,
27-
rgba(139, 233, 253, 0.1) 100%);
28-
border-radius: 15px;
29-
border: 1px solid rgba(255, 255, 255, 0.1);
30-
backdrop-filter: blur(10px);
31-
}
32-
33-
.tool-info {
34-
flex: 1;
35-
}
36-
37-
.tool-title {
38-
font-size: 2rem;
39-
font-weight: 700;
40-
margin: 0 0 0.5rem 0;
41-
background: linear-gradient(135deg, #50fa7b, #8be9fd);
42-
-webkit-background-clip: text;
43-
-webkit-text-fill-color: transparent;
44-
background-clip: text;
45-
}
46-
47-
.tool-description {
48-
color: var(--font-color);
49-
font-size: 1.1rem;
50-
margin: 0;
51-
line-height: 1.6;
52-
opacity: 0.9;
53-
}
54-
551
.guid-stats {
562
display: flex;
573
gap: 1.5rem;
584
}
595

60-
.stat-item {
61-
display: flex;
62-
flex-direction: column;
63-
align-items: center;
64-
padding: 1rem;
65-
background: rgba(255, 255, 255, 0.05);
66-
border-radius: 12px;
67-
border: 1px solid rgba(255, 255, 255, 0.1);
68-
min-width: 80px;
69-
}
70-
71-
.stat-label {
72-
font-size: 0.8rem;
73-
color: var(--font-color);
74-
opacity: 0.7;
75-
text-transform: uppercase;
76-
letter-spacing: 0.5px;
77-
margin-bottom: 0.25rem;
78-
}
79-
80-
.stat-value {
81-
font-size: 1rem;
82-
font-weight: 600;
83-
color: #50fa7b;
84-
text-align: center;
85-
}
86-
87-
/* Controls Panel */
88-
.controls-panel {
89-
background: linear-gradient(145deg,
90-
rgba(40, 42, 54, 0.8) 0%,
91-
rgba(40, 42, 54, 0.4) 100%);
92-
border-radius: 15px;
93-
border: 1px solid rgba(255, 255, 255, 0.1);
94-
backdrop-filter: blur(10px);
95-
overflow: visible;
96-
transition: all 0.3s ease;
97-
position: relative;
98-
}
99-
100-
.controls-panel::before {
101-
content: '';
102-
position: absolute;
103-
top: 0;
104-
left: 0;
105-
right: 0;
106-
height: 3px;
107-
background: linear-gradient(90deg, #50fa7b, #8be9fd);
108-
border-radius: 15px 15px 0 0;
109-
}
110-
111-
.controls-panel:hover {
112-
transform: translateY(-2px);
113-
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
114-
border-color: rgba(255, 255, 255, 0.15);
115-
}
116-
117-
.panel-header {
118-
display: flex;
119-
justify-content: space-between;
120-
align-items: center;
121-
padding: 1rem 1.5rem;
122-
background: linear-gradient(135deg,
123-
rgba(80, 250, 123, 0.08) 0%,
124-
rgba(139, 233, 253, 0.05) 100%);
125-
border-bottom: 1px solid rgba(80, 250, 123, 0.2);
126-
}
127-
128-
.panel-title {
129-
display: flex;
130-
align-items: center;
131-
gap: 0.5rem;
132-
}
133-
134-
.panel-icon {
135-
font-size: 1.2rem;
136-
filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.3));
137-
}
138-
139-
.panel-title h3 {
140-
margin: 0;
141-
font-size: 1.1rem;
142-
font-weight: 600;
143-
color: var(--headers);
144-
}
145-
146-
/* GUID Controls */
1476
.guid-controls {
1487
display: flex;
1498
flex-direction: row;
@@ -153,38 +12,6 @@
15312
flex-wrap: wrap;
15413
}
15514

156-
.option-group {
157-
display: flex;
158-
flex-direction: column;
159-
gap: 0.5rem;
160-
}
161-
162-
.option-group label {
163-
font-weight: 600;
164-
color: var(--font-color);
165-
font-size: 0.9rem;
166-
}
167-
168-
.count-input {
169-
background: rgba(255, 255, 255, 0.05);
170-
border: 1px solid rgba(255, 255, 255, 0.1);
171-
border-radius: 8px;
172-
padding: 0.75rem;
173-
color: var(--font-color);
174-
font-size: 0.9rem;
175-
transition: all 0.2s ease;
176-
width: 100%;
177-
max-width: 200px;
178-
}
179-
180-
.count-input:focus {
181-
outline: none;
182-
border-color: #50fa7b;
183-
box-shadow: 0 0 0 2px rgba(80, 250, 123, 0.2);
184-
background: rgba(80, 250, 123, 0.05);
185-
}
186-
187-
/* Format Options */
18815
.format-options {
18916
display: flex;
19017
flex-direction: row;
@@ -251,37 +78,6 @@
25178
background: var(--background);
25279
}
25380

254-
/* Generate Button */
255-
.generate-btn {
256-
display: flex;
257-
align-items: center;
258-
justify-content: center;
259-
gap: 0.5rem;
260-
padding: 1rem 2rem;
261-
background: linear-gradient(135deg, #50fa7b, #8be9fd);
262-
border: none;
263-
border-radius: 10px;
264-
color: var(--background);
265-
font-size: 1rem;
266-
font-weight: 600;
267-
cursor: pointer;
268-
transition: all 0.3s ease;
269-
text-transform: none;
270-
height: 50px;
271-
white-space: nowrap;
272-
min-width: 200px;
273-
}
274-
275-
.generate-btn:hover {
276-
transform: translateY(-2px);
277-
box-shadow: 0 8px 25px rgba(80, 250, 123, 0.4);
278-
background: linear-gradient(135deg, #8be9fd, #50fa7b);
279-
}
280-
281-
.generate-btn:active {
282-
transform: translateY(0);
283-
}
284-
28581
.btn-icon {
28682
font-size: 1.1rem;
28783
filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.3));
@@ -300,29 +96,9 @@
30096
align-items: flex-start;
30197
gap: 1rem;
30298
}
303-
304-
.generate-btn {
305-
align-self: stretch;
306-
min-width: auto;
307-
}
30899
}
309100

310101
@media (max-width: 768px) {
311-
.generator-container {
312-
padding: 1rem;
313-
gap: 1rem;
314-
}
315-
316-
.tool-header {
317-
flex-direction: column;
318-
gap: 1rem;
319-
padding: 1rem;
320-
}
321-
322-
.tool-title {
323-
font-size: 1.5rem;
324-
}
325-
326102
.guid-stats {
327103
align-self: stretch;
328104
justify-content: center;
@@ -335,21 +111,11 @@
335111
align-items: stretch;
336112
}
337113

338-
.count-input {
339-
max-width: 100%;
340-
}
341-
342114
.format-options {
343115
flex-direction: column;
344116
align-items: flex-start;
345117
gap: 0.75rem;
346118
}
347-
348-
.generate-btn {
349-
align-self: stretch;
350-
min-width: auto;
351-
height: 48px;
352-
}
353119
}
354120

355121
@media (max-width: 480px) {
@@ -358,11 +124,6 @@
358124
gap: 1rem;
359125
}
360126

361-
.stat-item {
362-
min-width: auto;
363-
width: 100%;
364-
}
365-
366127
.format-options {
367128
gap: 0.75rem;
368129
}

src/app/generators/g-guid/g-guid.component.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,28 @@ import { GeneratorServiceBase } from '../_services/generator.service';
99
selector: 'app-g-guid',
1010
imports: [CommonModule, FormsModule, GeneratorViewComponent],
1111
providers: [{ provide: GeneratorServiceBase, useClass: GuidGeneratorService }],
12+
host: { class: 'host-flex-container' },
1213
template: `
13-
<div class="generator-container">
14-
<div class="tool-header">
14+
<div class="tool-container">
15+
<div class="tool-header primary-gradient">
1516
<div class="tool-info">
16-
<h1 class="tool-title">GUID Generator</h1>
17+
<h1 class="tool-title primary-gradient">GUID Generator</h1>
1718
<p class="tool-description">Generate unique identifiers (GUIDs/UUIDs) for your applications and databases with customizable quantity</p>
1819
</div>
1920
<div class="guid-stats">
2021
<div class="stat-item">
2122
<span class="stat-label">Format</span>
22-
<span class="stat-value">UUID v4</span>
23+
<span class="stat-value primary-color">UUID v4</span>
2324
</div>
2425
<div class="stat-item">
2526
<span class="stat-label">Uniqueness</span>
26-
<span class="stat-value">~5.3×10³⁶</span>
27+
<span class="stat-value primary-color">~5.3×10³⁶</span>
2728
</div>
2829
</div>
2930
</div>
3031
31-
<div class="controls-panel">
32-
<div class="panel-header">
32+
<div class="controls-panel primary-accent">
33+
<div class="panel-header primary-bg">
3334
<div class="panel-title">
3435
<div class="panel-icon">⚙️</div>
3536
<h3>Generation Options</h3>
@@ -45,7 +46,7 @@ import { GeneratorServiceBase } from '../_services/generator.service';
4546
max="1000"
4647
[ngModel]="count()"
4748
(ngModelChange)="count.set($event)"
48-
class="count-input"
49+
class="form-input primary-focus"
4950
/>
5051
</div>
5152
<div class="format-options">
@@ -87,7 +88,7 @@ import { GeneratorServiceBase } from '../_services/generator.service';
8788
</div>
8889
</div>
8990
<button
90-
class="btn btn-primary generate-btn"
91+
class="action-btn primary-gradient"
9192
(click)="generateGuids()"
9293
>
9394
<span class="btn-icon">⚡</span>

0 commit comments

Comments
 (0)