first version
This commit is contained in:
536
components.css
Normal file
536
components.css
Normal file
@@ -0,0 +1,536 @@
|
||||
/* Project Friction - Components CSS */
|
||||
/* Reusable UI components for the museum exhibit */
|
||||
|
||||
/* Navigation Cards */
|
||||
.nav-card {
|
||||
background: var(--color-white);
|
||||
border: 2px solid #e9ecef;
|
||||
border-radius: var(--radius-lg);
|
||||
padding: var(--spacing-xl);
|
||||
margin-bottom: var(--spacing-lg);
|
||||
cursor: pointer;
|
||||
transition: all var(--transition-normal);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.nav-card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 5px;
|
||||
background: var(--theme-color);
|
||||
transition: width var(--transition-normal);
|
||||
}
|
||||
|
||||
.nav-card:hover {
|
||||
transform: translateX(5px);
|
||||
box-shadow: var(--shadow-lg);
|
||||
border-color: var(--theme-color);
|
||||
}
|
||||
|
||||
.nav-card:hover::before {
|
||||
width: 8px;
|
||||
}
|
||||
|
||||
.nav-card[data-section="context"] { --theme-color: var(--color-context); }
|
||||
.nav-card[data-section="rcaf"] { --theme-color: var(--color-rcaf); }
|
||||
.nav-card[data-section="rcn"] { --theme-color: var(--color-rcn); }
|
||||
.nav-card[data-section="army"] { --theme-color: var(--color-army); }
|
||||
.nav-card[data-section="legacy"] { --theme-color: var(--color-legacy); }
|
||||
|
||||
.nav-card-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-lg);
|
||||
margin-bottom: var(--spacing-md);
|
||||
}
|
||||
|
||||
.nav-card-icon {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.nav-card-title {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.nav-card-title h3 {
|
||||
font-size: 16px;
|
||||
margin-bottom: var(--spacing-xs);
|
||||
color: var(--color-black);
|
||||
font-family: var(--font-primary);
|
||||
}
|
||||
|
||||
.nav-card-title span {
|
||||
font-size: 12px;
|
||||
color: var(--color-dark-gray);
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
.nav-card-preview {
|
||||
font-size: 13px;
|
||||
line-height: 1.6;
|
||||
color: var(--color-dark-gray);
|
||||
margin-bottom: var(--spacing-md);
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
.nav-card-links {
|
||||
display: flex;
|
||||
gap: var(--spacing-lg);
|
||||
font-size: 12px;
|
||||
color: var(--color-rcaf);
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
.nav-card-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-xs);
|
||||
}
|
||||
|
||||
/* Interactive Map Buttons */
|
||||
.map-button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
padding: var(--spacing-md) var(--spacing-lg);
|
||||
background: linear-gradient(135deg, var(--color-rcaf) 0%, #2980b9 100%);
|
||||
color: var(--color-white);
|
||||
border: none;
|
||||
border-radius: 25px;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
transition: all var(--transition-normal);
|
||||
margin: var(--spacing-md) var(--spacing-md) var(--spacing-md) 0;
|
||||
box-shadow: 0 2px 5px rgba(52, 152, 219, 0.3);
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
.map-button:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 10px rgba(52, 152, 219, 0.4);
|
||||
}
|
||||
|
||||
.map-button.active {
|
||||
background: linear-gradient(135deg, var(--color-accent) 0%, #c0392b 100%);
|
||||
box-shadow: 0 2px 5px rgba(192, 57, 43, 0.3);
|
||||
}
|
||||
|
||||
.map-button-icon {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* Fact Boxes */
|
||||
.fact-box {
|
||||
background: linear-gradient(to right, #fef5e7, #fdf2e9);
|
||||
border-left: 5px solid #f39c12;
|
||||
padding: var(--spacing-xl);
|
||||
margin: var(--spacing-xl) 0;
|
||||
border-radius: var(--radius-sm);
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
|
||||
.fact-box h3 {
|
||||
font-size: 16px;
|
||||
color: #d68910;
|
||||
margin-bottom: var(--spacing-md);
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
.fact-box ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.fact-box li {
|
||||
padding: 6px 0;
|
||||
color: #7f6000;
|
||||
font-size: 14px;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
.fact-box li::before {
|
||||
content: "▸";
|
||||
margin-right: var(--spacing-md);
|
||||
color: #f39c12;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Quote Blocks */
|
||||
.quote-block {
|
||||
background: var(--color-light-gray);
|
||||
border-left: 4px solid var(--color-secondary);
|
||||
padding: var(--spacing-xl);
|
||||
margin: var(--spacing-xxl) 0;
|
||||
font-style: italic;
|
||||
position: relative;
|
||||
border-radius: var(--radius-sm);
|
||||
}
|
||||
|
||||
.quote-block::before {
|
||||
content: """;
|
||||
font-size: 60px;
|
||||
color: #cbd5e0;
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
left: 10px;
|
||||
font-family: var(--font-primary);
|
||||
}
|
||||
|
||||
.quote-text {
|
||||
font-size: 17px;
|
||||
line-height: 1.6;
|
||||
color: var(--color-secondary);
|
||||
margin-bottom: var(--spacing-md);
|
||||
padding-left: 30px;
|
||||
font-family: var(--font-primary);
|
||||
}
|
||||
|
||||
.quote-attribution {
|
||||
text-align: right;
|
||||
font-size: 14px;
|
||||
color: var(--color-dark-gray);
|
||||
font-style: normal;
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
/* Timeline Cards */
|
||||
.timeline-card {
|
||||
background: var(--color-white);
|
||||
border: 1px solid var(--color-gray);
|
||||
border-radius: var(--radius-md);
|
||||
padding: var(--spacing-xl);
|
||||
margin: var(--spacing-xl) 0;
|
||||
position: relative;
|
||||
transition: all var(--transition-normal);
|
||||
}
|
||||
|
||||
.timeline-card:hover {
|
||||
box-shadow: var(--shadow-lg);
|
||||
transform: translateX(5px);
|
||||
}
|
||||
|
||||
.timeline-date {
|
||||
position: absolute;
|
||||
left: -15px;
|
||||
top: var(--spacing-xl);
|
||||
background: var(--color-accent);
|
||||
color: var(--color-white);
|
||||
padding: var(--spacing-sm) var(--spacing-md);
|
||||
border-radius: var(--radius-sm);
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
.timeline-content {
|
||||
margin-left: var(--spacing-xl);
|
||||
}
|
||||
|
||||
.timeline-content h4 {
|
||||
font-size: 18px;
|
||||
color: var(--color-primary);
|
||||
margin-bottom: var(--spacing-md);
|
||||
font-family: var(--font-primary);
|
||||
}
|
||||
|
||||
.timeline-content p {
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
color: var(--color-dark-gray);
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
/* Media Gallery */
|
||||
.media-section {
|
||||
margin: var(--spacing-xxl) 0;
|
||||
padding: var(--spacing-xl);
|
||||
background: var(--color-light-gray);
|
||||
border-radius: var(--radius-md);
|
||||
}
|
||||
|
||||
.media-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-md);
|
||||
margin-bottom: var(--spacing-lg);
|
||||
}
|
||||
|
||||
.media-header h3 {
|
||||
font-size: 18px;
|
||||
color: var(--color-primary);
|
||||
font-family: var(--font-primary);
|
||||
}
|
||||
|
||||
.media-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: var(--spacing-lg);
|
||||
}
|
||||
|
||||
.media-item {
|
||||
position: relative;
|
||||
aspect-ratio: 4/3;
|
||||
background: #ddd;
|
||||
border-radius: var(--radius-sm);
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
transition: transform var(--transition-normal);
|
||||
}
|
||||
|
||||
.media-item:hover {
|
||||
transform: scale(1.05);
|
||||
box-shadow: var(--shadow-lg);
|
||||
}
|
||||
|
||||
.media-caption {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
|
||||
color: var(--color-white);
|
||||
padding: var(--spacing-md);
|
||||
font-size: 12px;
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
/* Document Section */
|
||||
.document-section {
|
||||
background: var(--color-white);
|
||||
border: 2px solid #ecf0f1;
|
||||
border-radius: var(--radius-md);
|
||||
padding: var(--spacing-xl);
|
||||
margin: var(--spacing-xl) 0;
|
||||
}
|
||||
|
||||
.document-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-md);
|
||||
margin-bottom: var(--spacing-lg);
|
||||
padding-bottom: var(--spacing-md);
|
||||
border-bottom: 2px solid #ecf0f1;
|
||||
}
|
||||
|
||||
.document-header h3 {
|
||||
font-size: 16px;
|
||||
color: var(--color-primary);
|
||||
font-family: var(--font-primary);
|
||||
}
|
||||
|
||||
.document-list {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.document-list li {
|
||||
padding: var(--spacing-md) 0;
|
||||
border-bottom: 1px solid #f5f5f5;
|
||||
}
|
||||
|
||||
.document-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-md);
|
||||
color: var(--color-rcaf);
|
||||
text-decoration: none;
|
||||
transition: all var(--transition-fast);
|
||||
font-family: var(--font-secondary);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.document-link:hover {
|
||||
color: #2980b9;
|
||||
padding-left: var(--spacing-md);
|
||||
}
|
||||
|
||||
/* Article Index */
|
||||
.article-index {
|
||||
padding: var(--spacing-xl);
|
||||
background: var(--color-white);
|
||||
border-radius: var(--radius-md);
|
||||
border: 1px solid var(--color-gray);
|
||||
margin: var(--spacing-xl) 0;
|
||||
}
|
||||
|
||||
.article-index h3 {
|
||||
font-size: 16px;
|
||||
margin-bottom: var(--spacing-lg);
|
||||
padding-bottom: var(--spacing-md);
|
||||
border-bottom: 2px solid var(--color-rcaf);
|
||||
color: var(--color-primary);
|
||||
font-family: var(--font-primary);
|
||||
}
|
||||
|
||||
.article-list {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.article-list li {
|
||||
padding: var(--spacing-sm) 0;
|
||||
border-bottom: 1px solid #f1f3f5;
|
||||
}
|
||||
|
||||
.article-list a {
|
||||
color: var(--color-rcaf);
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
transition: all var(--transition-fast);
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
.article-list a:hover {
|
||||
padding-left: var(--spacing-md);
|
||||
color: #0056b3;
|
||||
}
|
||||
|
||||
/* Info Box */
|
||||
.info-box {
|
||||
background: linear-gradient(to right, var(--color-light-gray), var(--color-white));
|
||||
border-left: 4px solid var(--color-rcaf);
|
||||
padding: var(--spacing-lg);
|
||||
margin: var(--spacing-xl) 0;
|
||||
border-radius: var(--radius-sm);
|
||||
}
|
||||
|
||||
.info-box h4 {
|
||||
font-size: 14px;
|
||||
margin-bottom: var(--spacing-md);
|
||||
color: var(--color-black);
|
||||
font-family: var(--font-secondary);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.info-box ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.info-box li {
|
||||
font-size: 13px;
|
||||
padding: 4px 0;
|
||||
color: #495057;
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
/* Story Map Banner */
|
||||
.story-map-banner {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
color: var(--color-white);
|
||||
padding: var(--spacing-xl);
|
||||
border-radius: var(--radius-lg);
|
||||
margin: var(--spacing-xl) 0;
|
||||
cursor: pointer;
|
||||
transition: transform var(--transition-normal);
|
||||
}
|
||||
|
||||
.story-map-banner:hover {
|
||||
transform: scale(1.02);
|
||||
box-shadow: 0 5px 20px rgba(102, 126, 234, 0.4);
|
||||
}
|
||||
|
||||
.story-map-banner h4 {
|
||||
font-size: 18px;
|
||||
margin-bottom: var(--spacing-sm);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-md);
|
||||
font-family: var(--font-primary);
|
||||
}
|
||||
|
||||
.story-map-banner p {
|
||||
font-size: 14px;
|
||||
opacity: 0.9;
|
||||
line-height: 1.6;
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
/* Section Headers */
|
||||
.chapter-header {
|
||||
margin: var(--spacing-xxl) 0 var(--spacing-xl) 0;
|
||||
padding-bottom: var(--spacing-md);
|
||||
border-bottom: 2px solid var(--color-context);
|
||||
}
|
||||
|
||||
.chapter-header h2 {
|
||||
font-size: 24px;
|
||||
color: var(--color-primary);
|
||||
font-family: var(--font-primary);
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.chapter-date {
|
||||
font-size: 14px;
|
||||
color: var(--color-dark-gray);
|
||||
margin-top: var(--spacing-sm);
|
||||
font-style: italic;
|
||||
font-family: var(--font-secondary);
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
.btn {
|
||||
padding: var(--spacing-md) var(--spacing-lg);
|
||||
border: none;
|
||||
border-radius: var(--radius-sm);
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
font-family: var(--font-secondary);
|
||||
transition: all var(--transition-fast);
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: var(--color-rcaf);
|
||||
color: var(--color-white);
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background: #2980b9;
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.btn-secondary {
|
||||
background: var(--color-gray);
|
||||
color: var(--color-black);
|
||||
}
|
||||
|
||||
.btn-secondary:hover {
|
||||
background: #adb5bd;
|
||||
}
|
||||
|
||||
/* Close button */
|
||||
.close-btn,
|
||||
.close-info {
|
||||
position: absolute;
|
||||
top: var(--spacing-md);
|
||||
right: var(--spacing-md);
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border: none;
|
||||
background: rgba(0,0,0,0.1);
|
||||
border-radius: var(--radius-full);
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 16px;
|
||||
color: var(--color-dark-gray);
|
||||
transition: all var(--transition-fast);
|
||||
}
|
||||
|
||||
.close-btn:hover,
|
||||
.close-info:hover {
|
||||
background: rgba(0,0,0,0.2);
|
||||
color: var(--color-black);
|
||||
}
|
||||
Reference in New Issue
Block a user