diff --git a/public/assets/css/theme-mgit-dark.css b/public/assets/css/theme-mgit-dark.css new file mode 100644 index 0000000..1bcf180 --- /dev/null +++ b/public/assets/css/theme-mgit-dark.css @@ -0,0 +1,258 @@ +/* mGit Dark Theme */ +gitea-theme-meta-info { + --theme-display-name: "mGit Dark"; +} + +:root { + --is-dark-theme: true; + + /* Typography - Same modern font stack */ + --fonts-proportional: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif !important; + --fonts-monospace: 'JetBrains Mono', 'Fira Code', 'Consolas', 'Monaco', 'Courier New', monospace !important; + --fonts-emoji: 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', sans-serif !important; + + /* Color Palette - Dark theme with good contrast */ + --color-primary: #3b82f6; + --color-primary-dark-1: #2563eb; + --color-primary-dark-2: #1e40af; + --color-primary-light-1: #60a5fa; + --color-primary-light-2: #93c5fd; + + --color-secondary: #94a3b8; + --color-success: #10b981; + --color-warning: #f59e0b; + --color-danger: #ef4444; + + /* Background colors - Dark */ + --color-body: #0f172a; + --color-body-secondary: #1e293b; + --color-body-tertiary: #334155; + + /* Text colors - Light on dark */ + --color-text: #f1f5f9; + --color-text-secondary: #cbd5e1; + --color-text-muted: #94a3b8; + --color-text-light: #64748b; + + /* Border colors */ + --color-border: #334155; + --color-border-secondary: #475569; + + /* Code block colors */ + --color-code-bg: #1e293b; + --color-code-border: #334155; + --color-code-text: #f1f5f9; + + /* Link colors */ + --color-link: #60a5fa; + --color-link-hover: #93c5fd; + + /* Spacing improvements */ + --spacing-xs: 0.25rem; + --spacing-sm: 0.5rem; + --spacing-md: 1rem; + --spacing-lg: 1.5rem; + --spacing-xl: 2rem; + + /* Border radius */ + --radius-sm: 0.375rem; + --radius-md: 0.5rem; + --radius-lg: 0.75rem; +} + +/* Base typography improvements */ +body { + font-family: var(--fonts-proportional); + font-size: 15px; + line-height: 1.6; + letter-spacing: -0.01em; + color: var(--color-text); + background-color: var(--color-body); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* Headings */ +h1, h2, h3, h4, h5, h6 { + font-weight: 600; + line-height: 1.3; + letter-spacing: -0.02em; + color: var(--color-text); + margin-top: 1.5em; + margin-bottom: 0.75em; +} + +h1 { font-size: 2rem; } +h2 { font-size: 1.75rem; } +h3 { font-size: 1.5rem; } +h4 { font-size: 1.25rem; } +h5 { font-size: 1.125rem; } +h6 { font-size: 1rem; } + +/* Links */ +a { + color: var(--color-link); + text-decoration: none; + transition: color 0.2s ease; +} + +a:hover { + color: var(--color-link-hover); + text-decoration: underline; +} + +/* Code blocks */ +code, pre { + font-family: var(--fonts-monospace); + font-size: 0.9em; +} + +pre { + background-color: var(--color-code-bg); + border: 1px solid var(--color-code-border); + border-radius: var(--radius-md); + padding: var(--spacing-md); + overflow-x: auto; + line-height: 1.5; +} + +code { + background-color: var(--color-code-bg); + padding: 0.2em 0.4em; + border-radius: var(--radius-sm); + color: var(--color-code-text); +} + +pre code { + background-color: transparent; + padding: 0; +} + +/* Buttons */ +.ui.button, .ui.buttons .button { + font-family: var(--fonts-proportional); + font-weight: 500; + letter-spacing: -0.01em; + border-radius: var(--radius-md); + transition: all 0.2s ease; +} + +.ui.primary.button { + background-color: var(--color-primary); + color: white; +} + +.ui.primary.button:hover { + background-color: var(--color-primary-light-1); +} + +/* Forms */ +.ui.input input, .ui.form input[type="text"], +.ui.form input[type="email"], .ui.form input[type="password"], +.ui.form textarea, .ui.form select { + font-family: var(--fonts-proportional); + background-color: var(--color-body-secondary); + color: var(--color-text); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + transition: border-color 0.2s ease, box-shadow 0.2s ease; +} + +.ui.input input:focus, .ui.form input:focus, +.ui.form textarea:focus, .ui.form select:focus { + border-color: var(--color-primary); + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2); +} + +/* Logo styling */ +.ui.menu .item img.logo { + height: 32px; + width: auto; +} + +/* Header improvements */ +.ui.menu { + background-color: var(--color-body-secondary); + border-bottom: 1px solid var(--color-border); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); +} + +.ui.menu .item { + color: var(--color-text-secondary); +} + +.ui.menu .item:hover { + background-color: var(--color-body-tertiary); + color: var(--color-text); +} + +/* Cards and containers */ +.ui.card, .ui.segment { + background-color: var(--color-body-secondary); + border: 1px solid var(--color-border); + border-radius: var(--radius-lg); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + color: var(--color-text); +} + +/* Repository list items */ +.repository.list .item { + border-bottom: 1px solid var(--color-border); + padding: var(--spacing-md) 0; +} + +.repository.list .item:hover { + background-color: var(--color-body-tertiary); +} + +/* Table improvements */ +.ui.table { + background-color: var(--color-body-secondary); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + overflow: hidden; + color: var(--color-text); +} + +.ui.table thead th { + background-color: var(--color-body-tertiary); + font-weight: 600; + color: var(--color-text); + border-bottom: 1px solid var(--color-border); +} + +.ui.table tbody tr { + border-bottom: 1px solid var(--color-border); +} + +.ui.table tbody tr:hover { + background-color: var(--color-body-tertiary); +} + +/* Badge and label improvements */ +.ui.label { + font-weight: 500; + border-radius: var(--radius-sm); + padding: 0.35em 0.75em; +} + +/* Footer styling */ +footer { + border-top: 1px solid var(--color-border); + background-color: var(--color-body-secondary); + padding: var(--spacing-xl) 0; + margin-top: var(--spacing-xl); + color: var(--color-text-secondary); +} + +/* Responsive improvements */ +@media (max-width: 768px) { + body { + font-size: 14px; + } + + h1 { font-size: 1.75rem; } + h2 { font-size: 1.5rem; } + h3 { font-size: 1.25rem; } +} + diff --git a/public/assets/css/theme-mgit-light.css b/public/assets/css/theme-mgit-light.css new file mode 100644 index 0000000..4fc5b02 --- /dev/null +++ b/public/assets/css/theme-mgit-light.css @@ -0,0 +1,232 @@ +/* mGit Light Theme */ +gitea-theme-meta-info { + --theme-display-name: "mGit Light"; +} + +:root { + --is-dark-theme: false; + + /* Typography - Modern font stack */ + --fonts-proportional: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif !important; + --fonts-monospace: 'JetBrains Mono', 'Fira Code', 'Consolas', 'Monaco', 'Courier New', monospace !important; + --fonts-emoji: 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', sans-serif !important; + + /* Color Palette - Professional and cohesive */ + --color-primary: #2563eb; + --color-primary-dark-1: #1e40af; + --color-primary-dark-2: #1e3a8a; + --color-primary-light-1: #3b82f6; + --color-primary-light-2: #60a5fa; + + --color-secondary: #64748b; + --color-success: #10b981; + --color-warning: #f59e0b; + --color-danger: #ef4444; + + /* Background colors */ + --color-body: #ffffff; + --color-body-secondary: #f8fafc; + --color-body-tertiary: #f1f5f9; + + /* Text colors */ + --color-text: #1e293b; + --color-text-secondary: #475569; + --color-text-muted: #64748b; + --color-text-light: #94a3b8; + + /* Border colors */ + --color-border: #e2e8f0; + --color-border-secondary: #cbd5e1; + + /* Code block colors */ + --color-code-bg: #f8fafc; + --color-code-border: #e2e8f0; + --color-code-text: #1e293b; + + /* Link colors */ + --color-link: #2563eb; + --color-link-hover: #1e40af; + + /* Spacing improvements */ + --spacing-xs: 0.25rem; + --spacing-sm: 0.5rem; + --spacing-md: 1rem; + --spacing-lg: 1.5rem; + --spacing-xl: 2rem; + + /* Border radius */ + --radius-sm: 0.375rem; + --radius-md: 0.5rem; + --radius-lg: 0.75rem; +} + +/* Base typography improvements */ +body { + font-family: var(--fonts-proportional); + font-size: 15px; + line-height: 1.6; + letter-spacing: -0.01em; + color: var(--color-text); + background-color: var(--color-body); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* Headings */ +h1, h2, h3, h4, h5, h6 { + font-weight: 600; + line-height: 1.3; + letter-spacing: -0.02em; + color: var(--color-text); + margin-top: 1.5em; + margin-bottom: 0.75em; +} + +h1 { font-size: 2rem; } +h2 { font-size: 1.75rem; } +h3 { font-size: 1.5rem; } +h4 { font-size: 1.25rem; } +h5 { font-size: 1.125rem; } +h6 { font-size: 1rem; } + +/* Links */ +a { + color: var(--color-link); + text-decoration: none; + transition: color 0.2s ease; +} + +a:hover { + color: var(--color-link-hover); + text-decoration: underline; +} + +/* Code blocks */ +code, pre { + font-family: var(--fonts-monospace); + font-size: 0.9em; +} + +pre { + background-color: var(--color-code-bg); + border: 1px solid var(--color-code-border); + border-radius: var(--radius-md); + padding: var(--spacing-md); + overflow-x: auto; + line-height: 1.5; +} + +code { + background-color: var(--color-code-bg); + padding: 0.2em 0.4em; + border-radius: var(--radius-sm); + color: var(--color-code-text); +} + +pre code { + background-color: transparent; + padding: 0; +} + +/* Buttons */ +.ui.button, .ui.buttons .button { + font-family: var(--fonts-proportional); + font-weight: 500; + letter-spacing: -0.01em; + border-radius: var(--radius-md); + transition: all 0.2s ease; +} + +.ui.primary.button { + background-color: var(--color-primary); + color: white; +} + +.ui.primary.button:hover { + background-color: var(--color-primary-dark-1); +} + +/* Forms */ +.ui.input input, .ui.form input[type="text"], +.ui.form input[type="email"], .ui.form input[type="password"], +.ui.form textarea, .ui.form select { + font-family: var(--fonts-proportional); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + transition: border-color 0.2s ease, box-shadow 0.2s ease; +} + +.ui.input input:focus, .ui.form input:focus, +.ui.form textarea:focus, .ui.form select:focus { + border-color: var(--color-primary); + box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); +} + +/* Logo styling */ +.ui.menu .item img.logo { + height: 32px; + width: auto; +} + +/* Header improvements */ +.ui.menu { + border-bottom: 1px solid var(--color-border); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); +} + +/* Cards and containers */ +.ui.card, .ui.segment { + border: 1px solid var(--color-border); + border-radius: var(--radius-lg); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); +} + +/* Repository list items */ +.repository.list .item { + border-bottom: 1px solid var(--color-border); + padding: var(--spacing-md) 0; +} + +.repository.list .item:hover { + background-color: var(--color-body-secondary); +} + +/* Table improvements */ +.ui.table { + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + overflow: hidden; +} + +.ui.table thead th { + background-color: var(--color-body-secondary); + font-weight: 600; + color: var(--color-text); +} + +/* Badge and label improvements */ +.ui.label { + font-weight: 500; + border-radius: var(--radius-sm); + padding: 0.35em 0.75em; +} + +/* Footer styling */ +footer { + border-top: 1px solid var(--color-border); + background-color: var(--color-body-secondary); + padding: var(--spacing-xl) 0; + margin-top: var(--spacing-xl); +} + +/* Responsive improvements */ +@media (max-width: 768px) { + body { + font-size: 14px; + } + + h1 { font-size: 1.75rem; } + h2 { font-size: 1.5rem; } + h3 { font-size: 1.25rem; } +} + diff --git a/public/assets/img/favicon.svg b/public/assets/img/favicon.svg new file mode 100644 index 0000000..efc455c --- /dev/null +++ b/public/assets/img/favicon.svg @@ -0,0 +1,10 @@ + diff --git a/public/assets/img/logo.svg b/public/assets/img/logo.svg new file mode 100644 index 0000000..a8a8bd6 --- /dev/null +++ b/public/assets/img/logo.svg @@ -0,0 +1,12 @@ + diff --git a/templates/custom/body_inner_pre.tmpl b/templates/custom/body_inner_pre.tmpl new file mode 100644 index 0000000..e69de29 diff --git a/templates/custom/extra_links.tmpl b/templates/custom/extra_links.tmpl new file mode 100644 index 0000000..e69de29 diff --git a/templates/custom/footer.tmpl b/templates/custom/footer.tmpl new file mode 100644 index 0000000..41dcb6a --- /dev/null +++ b/templates/custom/footer.tmpl @@ -0,0 +1,12 @@ + diff --git a/templates/custom/header.tmpl b/templates/custom/header.tmpl new file mode 100644 index 0000000..07bb8c0 --- /dev/null +++ b/templates/custom/header.tmpl @@ -0,0 +1,40 @@ + diff --git a/templates/home.tmpl b/templates/home.tmpl new file mode 100644 index 0000000..03755fd --- /dev/null +++ b/templates/home.tmpl @@ -0,0 +1,37 @@ +{{template "base/head" .}} + +