Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
e63cd7b
Create HELP.md
luvaary Dec 14, 2025
5fe434e
Create FEATURES.md
luvaary Dec 14, 2025
1b40b54
Create .placehold
luvaary Dec 14, 2025
8f085bd
The official logos of "crescent"
luvaary Dec 14, 2025
d1b4544
Rename crescent..svg to icon.svg
luvaary Dec 14, 2025
b0f7f1e
removing the placeholder in (assets/)
luvaary Dec 14, 2025
0bca57d
Create main.css
luvaary Dec 14, 2025
c9a50bf
Create components.css
luvaary Dec 14, 2025
b3034f9
Create features.css
luvaary Dec 14, 2025
b41b442
Create app.js
luvaary Dec 14, 2025
b0c7bcd
Create search.js
luvaary Dec 14, 2025
eb06648
Create ui.js
luvaary Dec 14, 2025
3039002
Create notes.js
luvaary Dec 14, 2025
3c344ca
Create timer.js
luvaary Dec 14, 2025
403a71e
Create history.js
luvaary Dec 14, 2025
a656572
Delete script.js
luvaary Dec 14, 2025
e7bff84
Delete styles.css
luvaary Dec 14, 2025
dfb8616
Update index.html
luvaary Dec 14, 2025
1f08ac7
Define CSS variables and base styles
luvaary Dec 14, 2025
f5a0922
Add styles for search and results components
luvaary Dec 14, 2025
a1c3c6c
Add 'coming soon -luvaary' message to features.css
luvaary Dec 14, 2025
52975da
Initialize app features on DOMContentLoaded
luvaary Dec 14, 2025
8bf8fcf
Add clock update, Spotify toggle, and fade-in functions
luvaary Dec 14, 2025
16c888a
Update search.js
luvaary Dec 14, 2025
3a59878
Implement note management functions with notifications
luvaary Dec 14, 2025
0e11868
Implement search history management functions
luvaary Dec 14, 2025
294c1e4
Create darkmode.js
luvaary Dec 14, 2025
1f74ea4
Add dark mode feature with toggle functionality
luvaary Dec 14, 2025
9c4ed7e
Implement timer functionality with start, stop, reset
luvaary Dec 14, 2025
c86cefc
Implement bookmark management functions
luvaary Dec 14, 2025
9226380
Update app.js
luvaary Dec 14, 2025
aca98f5
Update search.js
luvaary Dec 14, 2025
7b6144d
Update index.html
luvaary Dec 14, 2025
db145b4
Update features.css
luvaary Dec 14, 2025
0964a4e
Update components.css
luvaary Dec 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added assets/favicon.ico
Binary file not shown.
4 changes: 4 additions & 0 deletions assets/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
243 changes: 243 additions & 0 deletions css/components.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
.search-container {
width: 100%;
max-width: 700px;
padding: 0 2rem;
margin-top: 2rem;
animation: fadeIn 1s ease-out 0.2s backwards;
}

.search-box {
position: relative;
width: 100%;
}

.search-input {
width: 100%;
padding: 1.25rem 1.5rem;
padding-right: 3.5rem;
font-family: 'DM Sans', sans-serif;
font-size: 1rem;
border: 1px solid var(--border);
border-radius: 16px;
background: var(--bg-card);
backdrop-filter: blur(10px);
color: var(--text-primary);
transition: all 0.3s ease;
box-shadow: var(--shadow);
}

.search-input::placeholder {
color: var(--text-muted);
}

.search-input:focus {
outline: none;
border-color: var(--accent-soft);
box-shadow: var(--shadow-hover);
}

.search-btn {
position: absolute;
right: 8px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
padding: 0.75rem;
cursor: pointer;
color: var(--text-muted);
transition: color 0.2s ease;
}

.search-btn:hover {
color: var(--accent);
}

.search-btn svg {
width: 20px;
height: 20px;
}

.api-categories {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 0.5rem;
margin-top: 1.5rem;
animation: fadeIn 1s ease-out 0.4s backwards;
}

.api-chip {
padding: 0.5rem 1rem;
font-size: 0.75rem;
border: 1px solid var(--border);
border-radius: 20px;
background: var(--bg-card);
color: var(--text-secondary);
cursor: pointer;
transition: all 0.2s ease;
letter-spacing: 0.02em;
}

.api-chip:hover {
background: var(--accent-soft);
border-color: var(--accent);
color: var(--text-primary);
}

.api-chip.active {
background: var(--accent);
border-color: var(--accent);
color: white;
}

.results-section {
width: 100%;
max-width: 900px;
padding: 2rem;
margin-top: 2rem;
display: none;
}

.results-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1.5rem;
padding-bottom: 1rem;
border-bottom: 1px solid var(--border);
}

.results-header h2 {
font-family: 'Cormorant Garamond', serif;
font-size: 1.25rem;
font-weight: 400;
color: var(--text-secondary);
}

.results-count {
font-size: 0.8rem;
color: var(--text-muted);
}

.results-grid {
display: grid;
gap: 1rem;
}

.result-card {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 12px;
padding: 1.5rem;
transition: all 0.3s ease;
cursor: pointer;
animation: slideUp 0.5s ease-out backwards;
position: relative;
}

.result-card:hover {
transform: translateY(-2px);
box-shadow: var(--shadow-hover);
border-color: var(--accent-soft);
}

@keyframes slideUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}

.result-source {
display: inline-flex;
align-items: center;
gap: 0.5rem;
font-size: 0.7rem;
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.1em;
margin-bottom: 0.75rem;
}

.source-dot {
width: 6px;
height: 6px;
border-radius: 50%;
}

.source-wikipedia { background: #636363; }
.source-openlib { background: #d4a373; }
.source-dictionary { background: #81c784; }
.source-nasa { background: #0b3d91; }

.result-title {
font-family: 'Cormorant Garamond', serif;
font-size: 1.25rem;
font-weight: 400;
color: var(--text-primary);
margin-bottom: 0.5rem;
line-height: 1.4;
}

.result-excerpt {
font-size: 0.9rem;
color: var(--text-secondary);
line-height: 1.6;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}

.result-meta {
display: flex;
gap: 1rem;
margin-top: 1rem;
font-size: 0.75rem;
color: var(--text-muted);
}

.bookmark-btn {
position: absolute;
top: 1rem;
right: 1rem;
background: var(--bg-secondary);
border: 1px solid var(--border);
border-radius: 50%;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
font-size: 1rem;
transition: all 0.2s ease;
}

.bookmark-btn:hover {
background: var(--accent);
transform: scale(1.1);
}

.loading {
display: none;
justify-content: center;
align-items: center;
padding: 3rem;
}

.loading.active {
display: flex;
}

.loader {
width: 40px;
height: 40px;
border: 2px solid var(--border);
border-top-color: var(--accent);
border-radius: 50%;
animation: spin 1s linear infinite;
}

@keyframes spin {
to { transform: rotate(360deg); }
}
Loading