Abmacode12's picture
1) Ce qui est possible “illimité”
fff5383 verified
/* Base Styles */
:root {
--primary: #3B82F6;
--primary-hover: #2563EB;
--secondary: #10B981;
--secondary-hover: #059669;
--bg-dark: #0F172A;
--bg-darker: #0B1120;
--bg-panel: #1E293B;
--bg-panel-dark: #1E293B;
--text-light: #F8FAFC;
--text-muted: #94A3B8;
--text-disabled: #64748B;
--border: #334155;
--border-light: #475569;
--radius: 12px;
--radius-sm: 8px;
--shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
body {
font-family: 'Inter', system-ui, -apple-system, sans-serif;
line-height: 1.5;
overflow: hidden;
}
/* Layout */
.app-container {
display: grid;
grid-template-columns: 300px 1fr 400px;
height: 100vh;
gap: 16px;
padding: 16px;
background: var(--bg-darker);
}
/* Sidebar Styles */
.sidebar {
background: var(--bg-panel-dark);
border-radius: var(--radius);
padding: 16px;
display: flex;
flex-direction: column;
border: 1px solid var(--border);
box-shadow: var(--shadow);
}
.sidebar-header {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 0 16px;
border-bottom: 1px solid var(--border);
margin-bottom: 16px;
}
.brand-dot {
width: 12px;
height: 12px;
border-radius: 50%;
background: linear-gradient(135deg, #3B82F6, #10B981);
box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15);
}
.brand-title {
font-weight: 600;
font-size: 16px;
}
.search-container {
display: flex;
gap: 12px;
margin-bottom: 16px;
background: rgba(0, 0, 0, 0.2);
padding: 12px;
border-radius: var(--radius-sm);
border: 1px solid var(--border);
}
.search-icon {
width: 36px;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.05);
border-radius: var(--radius-sm);
border: 1px solid var(--border);
color: var(--text-muted);
}
.search-input {
flex: 1;
display: flex;
align-items: center;
gap: 8px;
background: rgba(255, 255, 255, 0.04);
border: 1px solid var(--border);
border-radius: var(--radius-sm);
padding: 0 12px;
color: var(--text-muted);
}
.search-input input {
width: 100%;
background: transparent;
border: none;
outline: none;
color: var(--text-light);
padding: 8px 0;
}
.search-input input::placeholder {
color: var(--text-muted);
}
.navigation {
flex: 1;
overflow-y: auto;
margin-bottom: 16px;
}
.nav-section {
color: var(--text-muted);
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.1em;
padding: 12px 8px 4px;
}
.nav-item {
display: flex;
align-items: center;
gap: 12px;
padding: 10px 12px;
border-radius: var(--radius-sm);
cursor: pointer;
margin-bottom: 4px;
border: 1px solid transparent;
}
.nav-item:hover {
background: rgba(255, 255, 255, 0.05);
border-color: var(--border-light);
}
.nav-item.active {
background: rgba(59, 130, 246, 0.15);
border-color: rgba(59, 130, 246, 0.3);
}
.nav-icon {
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.05);
border-radius: var(--radius-sm);
border: 1px solid var(--border);
color: var(--text-muted);
}
.nav-label {
flex: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: var(--text-light);
}
.nav-label a {
color: inherit;
text-decoration: none;
display: block;
width: 100%;
}
.sidebar-footer {
display: flex;
justify-content: space-between;
gap: 8px;
padding-top: 16px;
border-top: 1px solid var(--border);
margin-top: auto;
}
.action-btn {
display: flex;
align-items: center;
gap: 8px;
background: rgba(255, 255, 255, 0.05);
border: 1px solid var(--border);
padding: 8px 12px;
border-radius: var(--radius-sm);
color: var(--text-muted);
font-size: 14px;
cursor: pointer;
}
.action-btn:hover {
background: rgba(255, 255, 255, 0.08);
}
.action-btn small {
font-size: 12px;
color: var(--text-disabled);
}
/* Main Content Styles */
.main-content {
background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.1));
border-radius: var(--radius);
border: 1px solid var(--border);
box-shadow: var(--shadow);
display: flex;
flex-direction: column;
position: relative;
}
.content-header {
display: flex;
gap: 8px;
padding: 12px 16px;
border-bottom: 1px solid var(--border);
background: rgba(0, 0, 0, 0.2);
}
.tag {
padding: 6px 10px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.05);
border: 1px solid var(--border);
color: var(--text-muted);
font-size: 12px;
}
.empty-state {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
color: var(--text-muted);
padding: 24px;
}
.empty-state h3 {
color: var(--text-light);
font-weight: 600;
margin-bottom: 8px;
}
.input-bar {
margin-top: auto;
padding: 12px;
background: rgba(0, 0, 0, 0.25);
border-top: 1px solid var(--border);
}
.input-bar {
display: flex;
align-items: center;
gap: 8px;
padding: 12px;
border-radius: var(--radius);
background: rgba(255, 255, 255, 0.05);
border: 1px solid var(--border);
}
.input-btn {
width: 42px;
height: 42px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.05);
border-radius: var(--radius-sm);
border: 1px solid var(--border);
color: var(--text-muted);
cursor: pointer;
}
.input-btn:hover {
background: rgba(255, 255, 255, 0.08);
color: var(--text-light);
}
.text-input {
flex: 1;
}
.text-input input {
width: 100%;
background: transparent;
border: none;
outline: none;
color: var(--text-light);
padding: 10px 0;
}
.text-input input::placeholder {
color: var(--text-muted);
}
.send-btn {
width: 42px;
height: 42px;
display: flex;
align-items: center;
justify-content: center;
background: var(--primary);
border-radius: var(--radius-sm);
border: none;
color: white;
cursor: pointer;
}
.send-btn:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.send-btn:hover:not(:disabled) {
background: var(--primary-hover);
}
/* Preview Panel Styles */
.preview-panel {
background: var(--bg-panel-dark);
border-radius: var(--radius);
border: 1px solid var(--border);
box-shadow: var(--shadow);
display: flex;
flex-direction: column;
}
.preview-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
border-bottom: 1px solid var(--border);
background: rgba(0, 0, 0, 0.2);
}
.preview-header h2 {
font-size: 16px;
font-weight: 600;
}
.toolbar {
display: flex;
gap: 8px;
}
.tool-btn {
width: 36px;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.05);
border-radius: var(--radius-sm);
border: 1px solid var(--border);
color: var(--text-muted);
cursor: pointer;
}
.tool-btn:hover {
background: rgba(255, 255, 255, 0.08);
color: var(--text-light);
}
.tool-btn.edit {
width: auto;
padding: 0 12px;
gap: 6px;
}
.preview-content {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.25);
}
.preview-error {
text-align: center;
max-width: 360px;
padding: 24px;
}
.error-icon {
width: 80px;
height: 80px;
margin: 0 auto 16px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: rgba(239, 68, 68, 0.15);
color: #EF4444;
}
.preview-error h3 {
font-weight: 600;
margin-bottom: 8px;
}
.preview-error p {
color: var(--text-muted);
}
.preview-footer {
display: flex;
justify-content: space-between;
padding: 12px 16px;
border-top: 1px solid var(--border);
background: rgba(0, 0, 0, 0.35);
font-size: 13px;
color: var(--text-muted);
}
.preview-footer strong {
color: var(--text-light);
}
/* Responsive Design */
@media (max-width: 1200px) {
.app-container {
grid-template-columns: 280px 1fr 360px;
}
}
@media (max-width: 992px) {
body {
overflow: auto;
}
.app-container {
grid-template-columns: 1fr;
height: auto;
}
.sidebar, .preview-panel {
min-height: 400px;
}
}
/* Feather Icons Size */
.feather {
width: 16px;
height: 16px;
}