meu-construtor-html / src /index.css
WanderHalley's picture
feat: add advanced element styling and UI updates
2996ad4
Raw History Blame Contribute Delete
7.86 kB
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;750;900&family=Space+Grotesk:wght@400;500;650;700&family=JetBrains+Mono:wght@400;500&display=swap');
@import "tailwindcss";
@theme {
--font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
--font-display: "Space Grotesk", sans-serif;
--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;
}
/* Custom scrolling inside the panels */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(100, 116, 139, 0.2);
border-radius: 9999px;
}
::-webkit-scrollbar-thumb:hover {
background: rgba(100, 116, 139, 0.4);
}
/* Custom visual pulse for iframe indicators and outlines */
@keyframes outlinePulse {
0%, 100% { outline-color: rgba(59, 130, 246, 0.8); }
50% { outline-color: rgba(99, 102, 241, 0.9); }
}
.selected-element-pulse {
outline: 2px solid rgba(59, 130, 246, 0.8);
animation: outlinePulse 2s infinite;
}
/* Ensure parsed HTML templates inherit default clean resets, presenting a crisp, clean standard white browser background by default */
.visual-user-content {
color-scheme: light;
background-color: #ffffff;
color: #0d1117;
font-family: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
/* If the visual canvas viewport has a custom dark background utility (e.g. bg-slate-900, dark backgrounds) injected, we let .visual-user-content have a transparent background to inherit the custom background correctly */
#visual-canvas-viewport[class*="bg-slate-"] .visual-user-content,
#visual-canvas-viewport[class*="bg-zinc-"] .visual-user-content,
#visual-canvas-viewport[class*="bg-gray-"] .visual-user-content,
#visual-canvas-viewport[class*="bg-[#"] .visual-user-content,
#visual-canvas-viewport[class*="bg-neutral-"] .visual-user-content,
#visual-canvas-viewport[class*="bg-black"] .visual-user-content {
background-color: transparent !important;
color: inherit !important;
}
.visual-user-content input,
.visual-user-content textarea,
.visual-user-content select {
color: inherit;
background-color: transparent;
}
/* Guard the sidebar inputs, textareas, labels and toolbar elements against user-injected style bleeding */
#sidebar-widgets-panel,
#sidebar-widgets-panel *,
#builder-top-bar,
#builder-top-bar *,
#styling-config-fields-panel,
#styling-config-fields-panel * {
/* Enforce standard dark theme color schemes */
color-scheme: dark !important;
font-family: "Inter", ui-sans-serif, system-ui, sans-serif !important;
}
/* Specific shield for input fields inside panels to guarantee text visibility (Image 2 and 3) */
#sidebar-widgets-panel input[type="text"],
#sidebar-widgets-panel input[type="number"],
#sidebar-widgets-panel input[type="color"],
#sidebar-widgets-panel textarea,
#sidebar-widgets-panel select,
#styling-config-fields-panel input[type="text"],
#styling-config-fields-panel input[type="number"],
#styling-config-fields-panel input[type="color"],
#styling-config-fields-panel textarea,
#styling-config-fields-panel select {
color: #ffffff !important;
background-color: #181a1c !important;
border: 1px solid #27272a !important;
outline: none !important;
box-shadow: none !important;
border-radius: 4px !important;
}
#sidebar-widgets-panel input[type="text"]::placeholder,
#sidebar-widgets-panel textarea::placeholder,
#styling-config-fields-panel input[type="text"]::placeholder,
#styling-config-fields-panel textarea::placeholder {
color: #52525b !important;
}
#sidebar-widgets-panel input[type="text"]:focus,
#sidebar-widgets-panel textarea:focus,
#styling-config-fields-panel input[type="text"]:focus,
#styling-config-fields-panel textarea:focus {
border-color: #ec4899 !important; /* Glow on focus mimicking tailwind focus:border-pink-500 */
}
/* Custom CSS to control floating action buttons at top-right with state triggers based on active hover */
#visual-canvas-viewport .hover-buttons-container {
position: absolute !important;
right: 0 !important;
top: 0 !important;
z-index: 50 !important;
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0) !important;
opacity: 1 !important;
transition: box-shadow 120ms ease-in-out, opacity 120ms ease-in-out !important;
}
#visual-canvas-viewport .hover-buttons-container:hover {
opacity: 0.8 !important;
}
#visual-canvas-viewport .hover-buttons-container button,
#visual-canvas-viewport .hover-buttons-container > div {
opacity: 0 !important;
transform: scale(0.95) !important;
transition: opacity 120ms ease-in-out, transform 120ms ease-in-out !important;
}
.visual-user-content:hover .hover-buttons-container button,
#visual-canvas-viewport:hover .hover-buttons-container button,
#visual-canvas-viewport .hover-buttons-container:hover button,
.visual-user-content:hover .hover-buttons-container > div,
#visual-canvas-viewport:hover .hover-buttons-container > div,
#visual-canvas-viewport .hover-buttons-container:hover > div {
opacity: 1 !important;
transform: scale(1) !important;
}
.visual-user-content:hover .hover-buttons-container,
#visual-canvas-viewport:hover .hover-buttons-container,
#visual-canvas-viewport .hover-buttons-container:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35) !important;
}
/* Custom Tooltips for hover buttons menu */
#visual-canvas-viewport .hover-buttons-container button[data-tooltip],
#visual-canvas-viewport .hover-buttons-container div[data-tooltip] {
position: relative !important;
}
#visual-canvas-viewport .hover-buttons-container button[data-tooltip]::after,
#visual-canvas-viewport .hover-buttons-container div[data-tooltip]::after {
content: attr(data-tooltip) !important;
position: absolute !important;
bottom: calc(100% + 8px) !important;
left: 50% !important;
transform: translateX(-50%) translateY(4px) scale(0.9) !important;
background: linear-gradient(135deg, #2a2b2e 0%, #151618 100%) !important;
color: #f8fafc !important;
border: 1px solid rgba(255, 255, 255, 0.08) !important;
padding: 4px 8px !important;
border-radius: 6px !important;
font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
font-size: 9.5px !important;
font-weight: 500 !important;
letter-spacing: 0.01em !important;
white-space: nowrap !important;
opacity: 0 !important;
pointer-events: none !important;
transition: opacity 120ms ease-in-out, transform 120ms ease-in-out !important;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5) !important;
z-index: 60 !important;
}
#visual-canvas-viewport .hover-buttons-container button[data-tooltip]:hover::after,
#visual-canvas-viewport .hover-buttons-container div[data-tooltip]:hover::after {
opacity: 1 !important;
transform: translateX(-50%) translateY(0) scale(1) !important;
}
#visual-canvas-viewport .hover-buttons-container button[data-tooltip]::before,
#visual-canvas-viewport .hover-buttons-container div[data-tooltip]::before {
content: "" !important;
position: absolute !important;
bottom: calc(100% + 4px) !important;
left: 50% !important;
transform: translateX(-50%) translateY(4px) !important;
border-width: 4px 4px 0 4px !important;
border-style: solid !important;
border-color: #151618 transparent transparent transparent !important;
opacity: 0 !important;
pointer-events: none !important;
transition: opacity 120ms ease-in-out, transform 120ms ease-in-out !important;
z-index: 60 !important;
}
#visual-canvas-viewport .hover-buttons-container button[data-tooltip]:hover::before,
#visual-canvas-viewport .hover-buttons-container div[data-tooltip]:hover::before {
opacity: 1 !important;
transform: translateX(-50%) translateY(0) !important;
}