Files
jotion/nextjs/app/globals.css
Mayne0213 e82ea71c22 REFACTOR(repo): simplify project structure
- Move services/nextjs to nextjs/
- Move deploy/docker/Dockerfile.prod to Dockerfile
- Add GitHub Actions workflows (ci.yml, build.yml)
- Remove deploy/, services/, scripts/ folders
2026-01-05 02:29:10 +09:00

321 lines
6.0 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
/* Hide scrollbar but keep functionality */
.scrollbar-hide {
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}
.scrollbar-hide::-webkit-scrollbar {
display: none; /* Chrome, Safari and Opera */
}
html,
body,
:root {
height: 100%;
}
@layer base {
:root {
--background: 0 0% 100%;
--foreground: 0 0% 3.9%;
--card: 0 0% 100%;
--card-foreground: 0 0% 3.9%;
--popover: 0 0% 100%;
--popover-foreground: 0 0% 3.9%;
--primary: 0 0% 9%;
--primary-foreground: 0 0% 98%;
--secondary: 0 0% 96.1%;
--secondary-foreground: 0 0% 9%;
--muted: 0 0% 96.1%;
--muted-foreground: 0 0% 45.1%;
--accent: 0 0% 96.1%;
--accent-foreground: 0 0% 9%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 0 0% 98%;
--border: 0 0% 89.8%;
--input: 0 0% 89.8%;
--ring: 0 0% 3.9%;
--radius: 0.5rem;
}
.dark {
--background: 0 0% 3.9%;
--foreground: 0 0% 98%;
--card: 0 0% 3.9%;
--card-foreground: 0 0% 98%;
--popover: 0 0% 3.9%;
--popover-foreground: 0 0% 98%;
--primary: 0 0% 98%;
--primary-foreground: 0 0% 9%;
--secondary: 0 0% 14.9%;
--secondary-foreground: 0 0% 98%;
--muted: 0 0% 14.9%;
--muted-foreground: 0 0% 63.9%;
--accent: 0 0% 14.9%;
--accent-foreground: 0 0% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 0 0% 98%;
--border: 0 0% 14.9%;
--input: 0 0% 14.9%;
--ring: 0 0% 83.1%;
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}
/* Tiptap Editor Styles */
.ProseMirror {
outline: none;
min-height: 200px;
color: #1f2937; /* Default text color for light theme */
}
/* Dark theme text color */
.dark .ProseMirror,
.dark .ProseMirror p,
.dark .ProseMirror div,
.dark .ProseMirror span {
color: #ffffff !important; /* 완전한 하얀색 강제 적용 */
}
.ProseMirror p.is-editor-empty:first-child::before {
color: #adb5bd;
content: attr(data-placeholder);
float: left;
height: 0;
pointer-events: none;
}
/* Dark theme placeholder */
.dark .ProseMirror p.is-editor-empty:first-child::before {
color: #6b7280;
}
.ProseMirror h1 {
font-size: 2em;
font-weight: bold;
margin: 0.67em 0;
color: #111827;
}
.ProseMirror h2 {
font-size: 1.5em;
font-weight: bold;
margin: 0.83em 0;
color: #111827;
}
.ProseMirror h3 {
font-size: 1.17em;
font-weight: bold;
margin: 1em 0;
color: #111827;
}
/* Dark theme headings */
.dark .ProseMirror h1,
.dark .ProseMirror h2,
.dark .ProseMirror h3 {
color: #f9fafb;
}
.ProseMirror ul,
.ProseMirror ol {
padding-left: 1.5em;
color: inherit;
}
.ProseMirror li {
color: inherit;
}
.ProseMirror blockquote {
border-left: 3px solid #e2e8f0;
padding-left: 1rem;
margin: 1rem 0;
font-style: italic;
color: #6b7280;
}
/* Dark theme blockquote */
.dark .ProseMirror blockquote {
color: #ffffff; /* 완전한 하얀색 */
}
.ProseMirror code {
background-color: #f1f5f9;
border-radius: 0.25rem;
padding: 0.125rem 0.25rem;
font-family: 'Courier New', monospace;
color: #374151;
}
/* Dark theme inline code */
.dark .ProseMirror code {
background-color: #374151;
color: #f3f4f6;
}
.ProseMirror pre {
background-color: #1e293b;
color: #e2e8f0;
border-radius: 0.5rem;
padding: 1rem;
overflow-x: auto;
margin: 1rem 0;
}
.ProseMirror pre code {
background: none;
padding: 0;
color: inherit;
}
.ProseMirror table {
border-collapse: collapse;
margin: 1rem 0;
width: 100%;
}
.ProseMirror th,
.ProseMirror td {
border: 1px solid #e2e8f0;
padding: 0.5rem;
text-align: left;
}
.ProseMirror th {
background-color: #f8fafc;
font-weight: bold;
}
.ProseMirror img {
max-width: 100%;
height: auto;
border-radius: 0.5rem;
}
.ProseMirror a {
color: #3b82f6;
text-decoration: underline;
}
/* Dark theme links */
.dark .ProseMirror a {
color: #60a5fa;
}
.ProseMirror mark {
background-color: #fef08a;
padding: 0.125rem 0.25rem;
border-radius: 0.25rem;
}
/* Dark theme highlight */
.dark .ProseMirror mark {
background-color: #fbbf24;
color: #111827;
}
.ProseMirror ul[data-type="taskList"] {
list-style: none;
padding: 0;
}
.ProseMirror ul[data-type="taskList"] li {
display: flex;
align-items: flex-start;
}
.ProseMirror ul[data-type="taskList"] li > label {
flex: 0 0 auto;
margin-right: 0.5rem;
user-select: none;
}
.ProseMirror ul[data-type="taskList"] li > div {
flex: 1 1 auto;
}
.ProseMirror ul[data-type="taskList"] input[type="checkbox"] {
cursor: pointer;
}
/* Dark mode styles */
.dark .ProseMirror blockquote {
border-left-color: #475569;
}
.dark .ProseMirror code {
background-color: #334155;
}
.dark .ProseMirror th {
background-color: #1e293b;
}
.dark .ProseMirror th,
.dark .ProseMirror td {
border-color: #475569;
}
/* Line clamp utilities */
.line-clamp-2 {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-3 {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
/* Code block styles */
pre {
display: block;
overflow-x: auto;
padding: 1rem;
background: #1e1e1e;
color: #d4d4d4;
border-radius: 0.5rem;
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
font-size: 0.875rem;
line-height: 1.5;
}
/* Light mode code block */
.light pre {
background: #f8f8f8;
color: #333;
}