diff --git a/package.json b/package.json deleted file mode 100644 index f4f889f..0000000 --- a/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "scripts": { - "dev": "tailwindcss -i src/static/tailwind/tailwind-input.css -o src/static/css/fossdb-ui.css -w" - }, - "devDependencies": { - "tailwindcss": "^3.3.2" - } -} diff --git a/src/FOSSDB/settings.py b/src/FOSSDB/settings.py index c28334f..8365263 100644 --- a/src/FOSSDB/settings.py +++ b/src/FOSSDB/settings.py @@ -39,6 +39,9 @@ INSTALLED_APPS = [ "account", "fossdb", "django_filters", + "tailwind", + "tokyonight_night", + "django_browser_reload", "fontawesomefree", "django.contrib.admin", "django.contrib.auth", @@ -56,6 +59,7 @@ MIDDLEWARE = [ "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", + "django_browser_reload.middleware.BrowserReloadMiddleware", ] ROOT_URLCONF = "FOSSDB.urls" @@ -65,6 +69,7 @@ TEMPLATES = [ "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": [ BASE_DIR / "templates", + BASE_DIR / "**" / "templates", ], "APP_DIRS": True, "OPTIONS": { @@ -152,6 +157,13 @@ LOGIN_REDIRECT_URL = "/" LOGOUT_REDIRECT_URL = "/" LOGIN_URL = "/login/" + +TAILWIND_APP_NAME = "tokyonight_night" + +INTERNAL_IPS = [ + "127.0.0.1", +] + # HTTPS settings # SESSION_COOKIE_SECURE = True # CSRF_COOKIE_SECURE = True diff --git a/src/FOSSDB/urls.py b/src/FOSSDB/urls.py index 1c03965..e995603 100644 --- a/src/FOSSDB/urls.py +++ b/src/FOSSDB/urls.py @@ -23,6 +23,7 @@ urlpatterns = [ path("", include("fossdb.urls")), path("", include("main.urls")), path("", include("django.contrib.auth.urls")), + path("__reload__/", include("django_browser_reload.urls")), ] if settings.DEBUG: from django.conf.urls.static import static diff --git a/src/templates/account/login.html b/src/apps/account/templates/login.html similarity index 92% rename from src/templates/account/login.html rename to src/apps/account/templates/login.html index c8eb1e4..e917deb 100644 --- a/src/templates/account/login.html +++ b/src/apps/account/templates/login.html @@ -1,4 +1,4 @@ -{% extends "layout.html" %} +{% extends "base.html" %} {% load static %} {% block title %}{{ title }}{% endblock %} {% block meta %}{% endblock %} diff --git a/src/templates/account/profile.html b/src/apps/account/templates/profile.html similarity index 91% rename from src/templates/account/profile.html rename to src/apps/account/templates/profile.html index b19e5a1..3c93cfb 100644 --- a/src/templates/account/profile.html +++ b/src/apps/account/templates/profile.html @@ -1,4 +1,4 @@ -{% extends "layout.html" %} +{% extends "base.html" %} {% load static %} {% block title %}{{ title }}{% endblock %} {% block meta %}{% endblock %} diff --git a/src/templates/account/signup.html b/src/apps/account/templates/signup.html similarity index 91% rename from src/templates/account/signup.html rename to src/apps/account/templates/signup.html index c4aaf09..b88415b 100644 --- a/src/templates/account/signup.html +++ b/src/apps/account/templates/signup.html @@ -1,4 +1,4 @@ -{% extends "layout.html" %} +{% extends "base.html" %} {% block title %}{{ title }}{% endblock %} {% block content %}
diff --git a/src/apps/account/views.py b/src/apps/account/views.py index 873c458..4b1eca0 100644 --- a/src/apps/account/views.py +++ b/src/apps/account/views.py @@ -13,7 +13,7 @@ def profile(request, username): "title": user.username + ("" if not user.full_name else f" ({user.full_name})"), "user": user, } - return render(request, "account/profile.html", context) + return render(request, "profile.html", context) def signup_view(request): @@ -33,7 +33,7 @@ def signup_view(request): "title": "Sign Up", "form": form, } - return render(request, "account/signup.html", context) + return render(request, "signup.html", context) def login_view(request): @@ -48,4 +48,4 @@ def login_view(request): "title": "Login", "form": form, } - return render(request, "account/login.html", context) + return render(request, "login.html", context) diff --git a/src/templates/fossdb/create_view.html b/src/apps/fossdb/templates/create_view.html similarity index 98% rename from src/templates/fossdb/create_view.html rename to src/apps/fossdb/templates/create_view.html index aa624a2..150fc0c 100644 --- a/src/templates/fossdb/create_view.html +++ b/src/apps/fossdb/templates/create_view.html @@ -1,4 +1,4 @@ -{% extends "layout.html" %} +{% extends "base.html" %} {% load static %} {% block title %}{{ title }}{% endblock %} {% block meta %}{% endblock %} diff --git a/src/templates/fossdb/delete_view.html b/src/apps/fossdb/templates/delete_view.html similarity index 90% rename from src/templates/fossdb/delete_view.html rename to src/apps/fossdb/templates/delete_view.html index b0c59df..ac37c83 100644 --- a/src/templates/fossdb/delete_view.html +++ b/src/apps/fossdb/templates/delete_view.html @@ -1,4 +1,4 @@ -{% extends "layout.html" %} +{% extends "base.html" %} {% block title %}Delete {{ project.name }}{% endblock %} {% block content %}

Are you sue you want to delete {{ project.name }}?

diff --git a/src/templates/fossdb/detailed_view.html b/src/apps/fossdb/templates/detailed_view.html similarity index 98% rename from src/templates/fossdb/detailed_view.html rename to src/apps/fossdb/templates/detailed_view.html index 6e26ccb..fac4530 100644 --- a/src/templates/fossdb/detailed_view.html +++ b/src/apps/fossdb/templates/detailed_view.html @@ -1,4 +1,4 @@ -{% extends "layout.html" %} +{% extends "base.html" %} {% load static %} {% block title %}{{ project.owner }}/{{ project.name }}{% endblock %} {% block meta %}{% endblock %} diff --git a/src/templates/fossdb/explore.html b/src/apps/fossdb/templates/explore.html similarity index 96% rename from src/templates/fossdb/explore.html rename to src/apps/fossdb/templates/explore.html index 93f2dbd..0b61240 100644 --- a/src/templates/fossdb/explore.html +++ b/src/apps/fossdb/templates/explore.html @@ -1,4 +1,4 @@ -{% extends "layout.html" %} +{% extends "base.html" %} {% load static %} {% block title %}{{ title }}{% endblock %} {% block meta %}{% endblock %} diff --git a/src/apps/fossdb/views.py b/src/apps/fossdb/views.py index 13ec9d4..b2cf66f 100644 --- a/src/apps/fossdb/views.py +++ b/src/apps/fossdb/views.py @@ -20,7 +20,7 @@ ProgrammingLanguageInlineFormset = inlineformset_factory( class ProjectListView(FilterView): model = Project - template_name = "fossdb/explore.html" + template_name = "explore.html" filterset_class = ProjectFilter context_object_name = "projects" paginate_by = 10 # optional 10 projects a page @@ -29,7 +29,7 @@ class ProjectListView(FilterView): class ProjectCreateView(LoginRequiredMixin, CreateView): model = Project form_class = ProjectForm - template_name = "fossdb/create_view.html" + template_name = "create_view.html" login_url = "/login/" redirect_field_name = "redirect_to" @@ -63,7 +63,7 @@ class ProjectCreateView(LoginRequiredMixin, CreateView): class ProjectDetailView(DetailView): model = Project - template_name = "fossdb/detailed_view.html" + template_name = "detailed_view.html" context_object_name = "project" slug_field = "name" slug_url_kwarg = "project_name" @@ -71,7 +71,7 @@ class ProjectDetailView(DetailView): class ProjectUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView): model = Project - template_name = "fossdb/create_view.html" + template_name = "create_view.html" form_class = ProjectForm slug_field = "name" slug_url_kwarg = "project_name" @@ -94,7 +94,7 @@ class ProjectUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView): class ProjectDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView): model = Project - template_name = "fossdb/delete_view.html" + template_name = "delete_view.html" slug_field = "name" slug_url_kwarg = "project_name" login_url = "/login/" diff --git a/src/apps/main/templates/fossdb/create_view.html b/src/apps/main/templates/fossdb/create_view.html new file mode 100644 index 0000000..150fc0c --- /dev/null +++ b/src/apps/main/templates/fossdb/create_view.html @@ -0,0 +1,34 @@ +{% extends "base.html" %} +{% load static %} +{% block title %}{{ title }}{% endblock %} +{% block meta %}{% endblock %} +{% block content %} + + {% csrf_token %} + {{ form.as_p }} + {{ hosting_platform.management_form }} + {{ hosting_platform.as_table }} +
+ {{ programming_language.management_form }} + {% for form in programming_language %}
{{ form.as_table }}
{% endfor %} +
+ + + + + + +
+ +{% endblock %} diff --git a/src/apps/main/templates/fossdb/delete_view.html b/src/apps/main/templates/fossdb/delete_view.html new file mode 100644 index 0000000..ac37c83 --- /dev/null +++ b/src/apps/main/templates/fossdb/delete_view.html @@ -0,0 +1,9 @@ +{% extends "base.html" %} +{% block title %}Delete {{ project.name }}{% endblock %} +{% block content %} +

Are you sue you want to delete {{ project.name }}?

+
+ {% csrf_token %} + +
+{% endblock %} diff --git a/src/templates/main/homepage.html b/src/apps/main/templates/homepage.html similarity index 81% rename from src/templates/main/homepage.html rename to src/apps/main/templates/homepage.html index 1d49737..c4b9433 100644 --- a/src/templates/main/homepage.html +++ b/src/apps/main/templates/homepage.html @@ -1,4 +1,4 @@ -{% extends "layout.html" %} +{% extends "base.html" %} {% load static %} {% block title %}{{ title }}{% endblock %} {% block meta %}{% endblock %} diff --git a/src/apps/main/views.py b/src/apps/main/views.py index bc0578d..91d1a5d 100644 --- a/src/apps/main/views.py +++ b/src/apps/main/views.py @@ -2,20 +2,20 @@ from django.shortcuts import render def homepage(request): - return render(request, "main/homepage.html", {"title": "FOSSDB"}) + return render(request, "homepage.html", {"title": "FOSSDB"}) def contribute(request): - return render(request, "main/contribute.html", {"title": "FOSSDB | Contribute"}) + return render(request, "contribute.html", {"title": "FOSSDB | Contribute"}) def news(request): - return render(request, "main/news.html", {"title": "FOSSDB | News"}) + return render(request, "news.html", {"title": "FOSSDB | News"}) def dashboard(request): - return render(request, "main/dashboard.html", {"title": "FOSSDB | Dashboard"}) + return render(request, "dashboard.html", {"title": "FOSSDB | Dashboard"}) def help(request): - return render(request, "main/help.html", {"title": "FOSSDB | Help"}) + return render(request, "help.html", {"title": "FOSSDB | Help"}) diff --git a/src/apps/tokyonight_night/__init__.py b/src/apps/tokyonight_night/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/apps/tokyonight_night/apps.py b/src/apps/tokyonight_night/apps.py new file mode 100644 index 0000000..217211d --- /dev/null +++ b/src/apps/tokyonight_night/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class Tokyonight_nightConfig(AppConfig): + name = 'tokyonight_night' diff --git a/src/apps/tokyonight_night/static_src/.gitignore b/src/apps/tokyonight_night/static_src/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/src/apps/tokyonight_night/static_src/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/src/apps/tokyonight_night/static_src/package.json b/src/apps/tokyonight_night/static_src/package.json new file mode 100644 index 0000000..2ca29f2 --- /dev/null +++ b/src/apps/tokyonight_night/static_src/package.json @@ -0,0 +1,29 @@ +{ + "name": "tokyonight_night", + "version": "3.6.0", + "description": "", + "scripts": { + "start": "npm run dev", + "build": "npm run build:clean && npm run build:tailwind", + "build:clean": "rimraf ../static/css/dist", + "build:tailwind": "cross-env NODE_ENV=production tailwindcss --postcss -i ./src/styles.css -o ../static/css/dist/styles.css --minify", + "dev": "cross-env NODE_ENV=development tailwindcss --postcss -i ./src/styles.css -o ../static/css/dist/styles.css -w", + "tailwindcss": "node ./node_modules/tailwindcss/lib/cli.js" + }, + "keywords": [], + "author": "", + "license": "MIT", + "devDependencies": { + "@tailwindcss/aspect-ratio": "^0.4.2", + "@tailwindcss/forms": "^0.5.3", + "@tailwindcss/line-clamp": "^0.4.4", + "@tailwindcss/typography": "^0.5.9", + "cross-env": "^7.0.3", + "postcss": "^8.4.24", + "postcss-import": "^15.1.0", + "postcss-nested": "^6.0.1", + "postcss-simple-vars": "^7.0.1", + "rimraf": "^5.0.1", + "tailwindcss": "^3.3.2" + } +} diff --git a/src/apps/tokyonight_night/static_src/postcss.config.js b/src/apps/tokyonight_night/static_src/postcss.config.js new file mode 100644 index 0000000..0dcb6c9 --- /dev/null +++ b/src/apps/tokyonight_night/static_src/postcss.config.js @@ -0,0 +1,7 @@ +module.exports = { + plugins: { + "postcss-import": {}, + "postcss-simple-vars": {}, + "postcss-nested": {}, + }, +} diff --git a/src/static/tailwind/tailwind-input.css b/src/apps/tokyonight_night/static_src/src/styles.css similarity index 100% rename from src/static/tailwind/tailwind-input.css rename to src/apps/tokyonight_night/static_src/src/styles.css diff --git a/src/apps/tokyonight_night/static_src/tailwind.config.js b/src/apps/tokyonight_night/static_src/tailwind.config.js new file mode 100644 index 0000000..461b690 --- /dev/null +++ b/src/apps/tokyonight_night/static_src/tailwind.config.js @@ -0,0 +1,99 @@ +/** + * This is a minimal config. + * + * If you need the full config, get it from here: + * https://unpkg.com/browse/tailwindcss@latest/stubs/defaultConfig.stub.js + */ + +module.exports = { + content: [ + /** + * HTML. Paths to Django template files that will contain Tailwind CSS classes. + */ + + /* Templates within theme app (/templates), e.g. base.html. */ + "../templates/**/*.html", + + /* + * Main templates directory of the project (BASE_DIR/templates). + * Adjust the following line to match your project structure. + */ + "../../templates/**/*.html", + + /* + * Templates in other django apps (BASE_DIR//templates). + * Adjust the following line to match your project structure. + */ + "../../**/templates/**/*.html", + + /** + * JS: If you use Tailwind CSS in JavaScript, uncomment the following lines and make sure + * patterns match your project structure. + */ + /* JS 1: Ignore any JavaScript in node_modules folder. */ + // '!../../**/node_modules', + /* JS 2: Process all JavaScript files in the project. */ + // '../../**/*.js', + + /** + * Python: If you use Tailwind CSS classes in Python, uncomment the following line + * and make sure the pattern below matches your project structure. + */ + // '../../**/*.py' + ], + theme: { + colors: { + gray: { + 100: "#1a1b26", + 200: "#15161e", + 300: "#16161e", + }, + indianred: "#db4b4b", + burlywood: "#e0af68", + + lightsteelblue: { + 100: "#c0caf5", + 200: "#a9b1d6", + }, + skyblue: "#0db9d7", + crimson: "#f52a65", + slategray: "#737aa2", + }, + fontFamily: { + rationale: [ + "Rationale", + "Roboto", + "Helvetica", + "Arial", + "sans-serif", + ], + abel: ["Abel", "Roboto", "Helvetica", "Arial", "sans-serif"], + condensed: [ + "Roboto Condensed", + "Roboto", + "Helvetica", + "Arial", + "sans-serif", + ], + roboto: ["Roboto", "Helvetica", "Arial", "sans-serif"], + }, + fontSize: { + base: "1rem", + xl: "1.25rem", + "4xl": "4rem", + }, + extend: {}, + extend: {}, + }, + plugins: [ + /** + * '@tailwindcss/forms' is the forms plugin that provides a minimal styling + * for forms. If you don't like it or have own styling for forms, + * comment the line below to disable '@tailwindcss/forms'. + */ + require("@tailwindcss/forms"), + require("@tailwindcss/typography"), + require("@tailwindcss/line-clamp"), + require("@tailwindcss/aspect-ratio"), + ], +} diff --git a/src/templates/layout.html b/src/apps/tokyonight_night/templates/base.html similarity index 97% rename from src/templates/layout.html rename to src/apps/tokyonight_night/templates/base.html index 63e09ce..edf3bc2 100644 --- a/src/templates/layout.html +++ b/src/apps/tokyonight_night/templates/base.html @@ -1,10 +1,10 @@ -{% load static %} +{% load static tailwind_tags %} - + {% tailwind_css %} diff --git a/src/static/css/fossdb-ui.css b/src/static/css/fossdb-ui.css deleted file mode 100644 index efe24a7..0000000 --- a/src/static/css/fossdb-ui.css +++ /dev/null @@ -1,775 +0,0 @@ -/* -! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com -*/ - -/* -1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) -2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) -*/ - -*, -::before, -::after { - box-sizing: border-box; - /* 1 */ - border-width: 0; - /* 2 */ - border-style: solid; - /* 2 */ - border-color: #15161e; - /* 2 */ -} - -::before, -::after { - --tw-content: ''; -} - -/* -1. Use a consistent sensible line-height in all browsers. -2. Prevent adjustments of font size after orientation changes in iOS. -3. Use a more readable tab size. -4. Use the user's configured `sans` font-family by default. -5. Use the user's configured `sans` font-feature-settings by default. -6. Use the user's configured `sans` font-variation-settings by default. -*/ - -html { - line-height: 1.5; - /* 1 */ - -webkit-text-size-adjust: 100%; - /* 2 */ - -moz-tab-size: 4; - /* 3 */ - -o-tab-size: 4; - tab-size: 4; - /* 3 */ - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - /* 4 */ - font-feature-settings: normal; - /* 5 */ - font-variation-settings: normal; - /* 6 */ -} - -/* -1. Remove the margin in all browsers. -2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. -*/ - -body { - margin: 0; - /* 1 */ - line-height: inherit; - /* 2 */ -} - -/* -1. Add the correct height in Firefox. -2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) -3. Ensure horizontal rules are visible by default. -*/ - -hr { - height: 0; - /* 1 */ - color: inherit; - /* 2 */ - border-top-width: 1px; - /* 3 */ -} - -/* -Add the correct text decoration in Chrome, Edge, and Safari. -*/ - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; -} - -/* -Remove the default font size and weight for headings. -*/ - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit; -} - -/* -Reset links to optimize for opt-in styling instead of opt-out. -*/ - -a { - color: inherit; - text-decoration: inherit; -} - -/* -Add the correct font weight in Edge and Safari. -*/ - -b, -strong { - font-weight: bolder; -} - -/* -1. Use the user's configured `mono` font family by default. -2. Correct the odd `em` font sizing in all browsers. -*/ - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - /* 1 */ - font-size: 1em; - /* 2 */ -} - -/* -Add the correct font size in all browsers. -*/ - -small { - font-size: 80%; -} - -/* -Prevent `sub` and `sup` elements from affecting the line height in all browsers. -*/ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* -1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) -2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) -3. Remove gaps between table borders by default. -*/ - -table { - text-indent: 0; - /* 1 */ - border-color: inherit; - /* 2 */ - border-collapse: collapse; - /* 3 */ -} - -/* -1. Change the font styles in all browsers. -2. Remove the margin in Firefox and Safari. -3. Remove default padding in all browsers. -*/ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - /* 1 */ - font-size: 100%; - /* 1 */ - font-weight: inherit; - /* 1 */ - line-height: inherit; - /* 1 */ - color: inherit; - /* 1 */ - margin: 0; - /* 2 */ - padding: 0; - /* 3 */ -} - -/* -Remove the inheritance of text transform in Edge and Firefox. -*/ - -button, -select { - text-transform: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Remove default button styles. -*/ - -button, -[type='button'], -[type='reset'], -[type='submit'] { - -webkit-appearance: button; - /* 1 */ - background-color: transparent; - /* 2 */ - background-image: none; - /* 2 */ -} - -/* -Use the modern Firefox focus style for all focusable elements. -*/ - -:-moz-focusring { - outline: auto; -} - -/* -Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) -*/ - -:-moz-ui-invalid { - box-shadow: none; -} - -/* -Add the correct vertical alignment in Chrome and Firefox. -*/ - -progress { - vertical-align: baseline; -} - -/* -Correct the cursor style of increment and decrement buttons in Safari. -*/ - -::-webkit-inner-spin-button, -::-webkit-outer-spin-button { - height: auto; -} - -/* -1. Correct the odd appearance in Chrome and Safari. -2. Correct the outline style in Safari. -*/ - -[type='search'] { - -webkit-appearance: textfield; - /* 1 */ - outline-offset: -2px; - /* 2 */ -} - -/* -Remove the inner padding in Chrome and Safari on macOS. -*/ - -::-webkit-search-decoration { - -webkit-appearance: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Change font properties to `inherit` in Safari. -*/ - -::-webkit-file-upload-button { - -webkit-appearance: button; - /* 1 */ - font: inherit; - /* 2 */ -} - -/* -Add the correct display in Chrome and Safari. -*/ - -summary { - display: list-item; -} - -/* -Removes the default spacing and border for appropriate elements. -*/ - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0; -} - -fieldset { - margin: 0; - padding: 0; -} - -legend { - padding: 0; -} - -ol, -ul, -menu { - list-style: none; - margin: 0; - padding: 0; -} - -/* -Prevent resizing textareas horizontally by default. -*/ - -textarea { - resize: vertical; -} - -/* -1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) -2. Set the default placeholder color to the user's configured gray 400 color. -*/ - -input::-moz-placeholder, textarea::-moz-placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -input::placeholder, -textarea::placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -/* -Set the default cursor for buttons. -*/ - -button, -[role="button"] { - cursor: pointer; -} - -/* -Make sure disabled buttons don't get the pointer cursor. -*/ - -:disabled { - cursor: default; -} - -/* -1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) -2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) - This can trigger a poorly considered lint error in some tools but is included by design. -*/ - -img, -svg, -video, -canvas, -audio, -iframe, -embed, -object { - display: block; - /* 1 */ - vertical-align: middle; - /* 2 */ -} - -/* -Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) -*/ - -img, -video { - max-width: 100%; - height: auto; -} - -/* Make elements with the HTML hidden attribute stay hidden by default */ - -[hidden] { - display: none; -} - -*, ::before, ::after { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; -} - -::backdrop { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; -} - -.container { - width: 100%; -} - -@media (min-width: 640px) { - .container { - max-width: 640px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 768px; - } -} - -@media (min-width: 1024px) { - .container { - max-width: 1024px; - } -} - -@media (min-width: 1280px) { - .container { - max-width: 1280px; - } -} - -@media (min-width: 1536px) { - .container { - max-width: 1536px; - } -} - -.static { - position: static; -} - -.relative { - position: relative; -} - -.mx-4 { - margin-left: 1rem; - margin-right: 1rem; -} - -.mb-1 { - margin-bottom: 0.25rem; -} - -.ml-4 { - margin-left: 1rem; -} - -.mt-4 { - margin-top: 1rem; -} - -.block { - display: block; -} - -.flex { - display: flex; -} - -.h-32 { - height: 8rem; -} - -.min-h-screen { - min-height: 100vh; -} - -.max-w-\[10rem\] { - max-width: 10rem; -} - -.flex-grow { - flex-grow: 1; -} - -.transform { - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.flex-col { - flex-direction: column; -} - -.items-center { - align-items: center; -} - -.justify-between { - justify-content: space-between; -} - -.gap-x-6 { - -moz-column-gap: 1.5rem; - column-gap: 1.5rem; -} - -.space-y-4 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(1rem * var(--tw-space-y-reverse)); -} - -.border { - border-width: 1px; -} - -.border-b-lightsteelblue-100 { - --tw-border-opacity: 1; - border-bottom-color: rgb(192 202 245 / var(--tw-border-opacity)); -} - -.bg-gray-100 { - --tw-bg-opacity: 1; - background-color: rgb(26 27 38 / var(--tw-bg-opacity)); -} - -.bg-gray-200 { - --tw-bg-opacity: 1; - background-color: rgb(21 22 30 / var(--tw-bg-opacity)); -} - -.p-8 { - padding: 2rem; -} - -.px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem; -} - -.py-2 { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.text-left { - text-align: left; -} - -.font-abel { - font-family: Abel, Roboto, Helvetica, Arial, sans-serif; -} - -.font-condensed { - font-family: Roboto Condensed, Roboto, Helvetica, Arial, sans-serif; -} - -.font-rationale { - font-family: Rationale, Roboto, Helvetica, Arial, sans-serif; -} - -.font-roboto { - font-family: Roboto, Helvetica, Arial, sans-serif; -} - -.text-4xl { - font-size: 4rem; -} - -.text-xl { - font-size: 1.25rem; -} - -.uppercase { - text-transform: uppercase; -} - -.text-lightsteelblue-100 { - --tw-text-opacity: 1; - color: rgb(192 202 245 / var(--tw-text-opacity)); -} - -.text-skyblue { - --tw-text-opacity: 1; - color: rgb(13 185 215 / var(--tw-text-opacity)); -} - -.text-slategray { - --tw-text-opacity: 1; - color: rgb(115 122 162 / var(--tw-text-opacity)); -} - -.underline { - text-decoration-line: underline; -} - -.filter { - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.transition { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.duration-200 { - transition-duration: 200ms; -} - -.duration-300 { - transition-duration: 300ms; -} - -.ease-in-out { - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); -} - -body { - margin: 0px; - line-height: normal; -} - -*, -::before, -::after { - border-width: 0; -} - -.hover\:border-b-2:hover { - border-bottom-width: 2px; -} - -.hover\:text-skyblue:hover { - --tw-text-opacity: 1; - color: rgb(13 185 215 / var(--tw-text-opacity)); -} - -.focus\:border-b-2:focus { - border-bottom-width: 2px; -} - -.focus\:border-b-skyblue:focus { - --tw-border-opacity: 1; - border-bottom-color: rgb(13 185 215 / var(--tw-border-opacity)); -} - -.focus\:outline-none:focus { - outline: 2px solid transparent; - outline-offset: 2px; -} diff --git a/tailwind.config.js b/tailwind.config.js deleted file mode 100644 index 0de8c37..0000000 --- a/tailwind.config.js +++ /dev/null @@ -1,48 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: ["./src/**/*.{html,js}"], - theme: { - colors: { - gray: { - 100: "#1a1b26", - 200: "#15161e", - 300: "#16161e", - }, - indianred: "#db4b4b", - burlywood: "#e0af68", - - lightsteelblue: { - 100: "#c0caf5", - 200: "#a9b1d6", - }, - skyblue: "#0db9d7", - crimson: "#f52a65", - slategray: "#737aa2", - }, - fontFamily: { - rationale: [ - "Rationale", - "Roboto", - "Helvetica", - "Arial", - "sans-serif", - ], - abel: ["Abel", "Roboto", "Helvetica", "Arial", "sans-serif"], - condensed: [ - "Roboto Condensed", - "Roboto", - "Helvetica", - "Arial", - "sans-serif", - ], - roboto: ["Roboto", "Helvetica", "Arial", "sans-serif"], - }, - fontSize: { - base: "1rem", - xl: "1.25rem", - "4xl": "4rem", - }, - extend: {}, - }, - plugins: [], -}