diff --git a/assets/css/app.css b/assets/css/core/app.css similarity index 92% rename from assets/css/app.css rename to assets/css/core/app.css index 9748baa..48c3c5f 100644 --- a/assets/css/app.css +++ b/assets/css/core/app.css @@ -1,7 +1,5 @@ -@import "./core_components.css"; +@import "./components.css"; @import "./flash.css"; -@import "./admin.css"; -@import "./home.css"; :root { --bg: #13151a; diff --git a/assets/css/core_components.css b/assets/css/core/components.css similarity index 100% rename from assets/css/core_components.css rename to assets/css/core/components.css diff --git a/assets/css/flash.css b/assets/css/core/flash.css similarity index 100% rename from assets/css/flash.css rename to assets/css/core/flash.css diff --git a/assets/css/home.css b/assets/css/home.css index 2976669..f2b68f7 100644 --- a/assets/css/home.css +++ b/assets/css/home.css @@ -1,16 +1,16 @@ -.service { +.home .service { margin-top: 28px; } -.service h3 { +.home .service h3 { margin-bottom: 8px; } -.service .link { +.home .service .link { color: var(--accent); } -.service svg { +.home .service svg { width: 16px; height: 16px; } diff --git a/assets/js/app.js b/assets/js/app.js index 4baf040..9342d26 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -21,7 +21,7 @@ import "phoenix_html" import {Socket} from "phoenix" import {LiveSocket} from "phoenix_live_view" import topbar from "../vendor/topbar" -import "../css/app.css" +import "../css/core/app.css" let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content") let liveSocket = new LiveSocket("/live", Socket, { diff --git a/config/config.exs b/config/config.exs index 8bcbdc1..df78330 100644 --- a/config/config.exs +++ b/config/config.exs @@ -41,6 +41,11 @@ config :esbuild, ~w(js/app.js --bundle --target=es2017 --outdir=../priv/static/assets --external:/fonts/* --external:/images/*), cd: Path.expand("../assets", __DIR__), env: %{"NODE_PATH" => Path.expand("../deps", __DIR__)} + ], + css: [ + args: ~w(css/home.css css/admin.css --outdir=../priv/static/assets), + cd: Path.expand("../assets", __DIR__), + env: %{"NODE_PATH" => Path.expand("../deps", __DIR__)} ] # Configures Elixir's Logger diff --git a/lib/comfycamp_web/components/layouts/root.html.heex b/lib/comfycamp_web/components/layouts/root.html.heex index 41749af..a78889c 100644 --- a/lib/comfycamp_web/components/layouts/root.html.heex +++ b/lib/comfycamp_web/components/layouts/root.html.heex @@ -15,6 +15,11 @@ } /> + <%= if assigns[:stylesheets] do %> + <%= for stylesheet <- @stylesheets do %> + + <% end %> + <% end %> put_layout(html: :admin) - |> render(:home, page_title: "Админка") + |> render(:home, page_title: "Админка", stylesheets: ["/assets/admin.css"]) end def services(conn, _params) do conn |> put_layout(html: :admin) - |> render(:home, page_title: "Админка") + |> render(:home, page_title: "Админка", stylesheets: ["/assets/admin.css"]) end end diff --git a/lib/comfycamp_web/controllers/home_controller.ex b/lib/comfycamp_web/controllers/home_controller.ex index a6631ae..2b348fb 100644 --- a/lib/comfycamp_web/controllers/home_controller.ex +++ b/lib/comfycamp_web/controllers/home_controller.ex @@ -2,14 +2,14 @@ defmodule ComfycampWeb.HomeController do use ComfycampWeb, :controller def index(conn, _params) do - render(conn, :index, page_title: "Главная") + render(conn, :index, page_title: "Главная", stylesheets: ["/assets/home.css"]) end def mastodon(conn, _params) do - render(conn, :mastodon, page_title: "Mastodon") + render(conn, :mastodon, page_title: "Mastodon", stylesheets: ["/assets/home.css"]) end def nextcloud(conn, _params) do - render(conn, :nextcloud, page_title: "Nextcloud") + render(conn, :nextcloud, page_title: "Nextcloud", stylesheets: ["/assets/home.css"]) end end diff --git a/lib/comfycamp_web/controllers/home_html.ex b/lib/comfycamp_web/controllers/home_html.ex index d1098e9..d5d0943 100644 --- a/lib/comfycamp_web/controllers/home_html.ex +++ b/lib/comfycamp_web/controllers/home_html.ex @@ -7,7 +7,7 @@ defmodule ComfycampWeb.HomeHTML do def index(assigns) do ~H""" -
+

Уютный домик

@@ -103,27 +103,31 @@ defmodule ComfycampWeb.HomeHTML do def mastodon(assigns) do ~H""" -

Mastodon

- m.comfycamp.space -

Удобный сервис для ведения микроблогов. Простыми словами, это альтернатива Twitter.

-

- Mastodon умеет подключаться к другим сервисам внутри сети Fediverse. - Так, например, вы можете общаться с пользователями Pleroma, Misskey, Friendica, Pixelfed, - даже если они находятся на других серверах. -

+
+

Mastodon

+ m.comfycamp.space +

Удобный сервис для ведения микроблогов. Простыми словами, это альтернатива Twitter.

+

+ Mastodon умеет подключаться к другим сервисам внутри сети Fediverse. + Так, например, вы можете общаться с пользователями Pleroma, Misskey, Friendica, Pixelfed, + даже если они находятся на других серверах. +

+
""" end def nextcloud(assigns) do ~H""" -

Nextcloud

- nc.comfycamp.space -

- Облако, способное заменить десяток сервисов. - При помощи Nextcloud вы можете хранить файлы, вести календарь и список задач, - синхронизировать контакты, читать почту и новости... - А если этого будет мало, вам доступны десятки приложений на любой вкус и цвет. -

+
+

Nextcloud

+ nc.comfycamp.space +

+ Облако, способное заменить десяток сервисов. + При помощи Nextcloud вы можете хранить файлы, вести календарь и список задач, + синхронизировать контакты, читать почту и новости... + А если этого будет мало, вам доступны десятки приложений на любой вкус и цвет. +

+
""" end end diff --git a/lib/comfycamp_web/controllers/notes_editor_controller.ex b/lib/comfycamp_web/controllers/notes_editor_controller.ex index ece19fc..2dca9a4 100644 --- a/lib/comfycamp_web/controllers/notes_editor_controller.ex +++ b/lib/comfycamp_web/controllers/notes_editor_controller.ex @@ -9,7 +9,7 @@ defmodule ComfycampWeb.NotesEditorController do conn |> put_layout(html: :admin) - |> render(:index, page_title: "Заметки", notes: notes) + |> render(:index, page_title: "Заметки", notes: notes, stylesheets: ["/assets/admin.css"]) end def new(conn, _params) do @@ -17,7 +17,11 @@ defmodule ComfycampWeb.NotesEditorController do conn |> put_layout(html: :admin) - |> render(:new, page_title: "Новая заметка", changeset: changeset) + |> render(:new, + page_title: "Новая заметка", + changeset: changeset, + stylesheets: ["/assets/admin.css"] + ) end def edit(conn, %{"id" => id}) do @@ -27,7 +31,11 @@ defmodule ComfycampWeb.NotesEditorController do conn |> put_layout(html: :admin) - |> render(:edit, page_title: "Редактировать заметку", changeset: changeset) + |> render(:edit, + page_title: "Редактировать заметку", + changeset: changeset, + stylesheets: ["/assets/admin.css"] + ) end def create(conn, %{"note" => note_params}) do @@ -41,7 +49,11 @@ defmodule ComfycampWeb.NotesEditorController do conn |> put_flash(:error, "Ошибка при обновлении заметки.") |> put_layout(html: :admin) - |> render(:new, page_title: "Создать заметку", changeset: changeset) + |> render(:new, + page_title: "Создать заметку", + changeset: changeset, + stylesheets: ["/assets/admin.css"] + ) end end @@ -58,7 +70,11 @@ defmodule ComfycampWeb.NotesEditorController do conn |> put_flash(:error, "Ошибка при обновлении заметки.") |> put_layout(html: :admin) - |> render(:edit, page_title: "Редактировать заметку", changeset: changeset) + |> render(:edit, + page_title: "Редактировать заметку", + changeset: changeset, + stylesheets: ["/assets/admin.css"] + ) end end @@ -67,7 +83,7 @@ defmodule ComfycampWeb.NotesEditorController do conn |> put_layout(html: :admin) - |> render(:show, page_title: "Заметка", note: note) + |> render(:show, page_title: "Заметка", note: note, stylesheets: ["/assets/admin.css"]) end def delete(conn, %{"id" => id}) do @@ -83,7 +99,11 @@ defmodule ComfycampWeb.NotesEditorController do conn |> put_flash(:error, "Ошибка при удалении заметки.") |> put_layout(html: :admin) - |> render(:edit, page_title: "Редактировать заметку", changeset: changeset) + |> render(:edit, + page_title: "Редактировать заметку", + changeset: changeset, + stylesheets: ["/assets/admin.css"] + ) end end end diff --git a/lib/comfycamp_web/controllers/user_editor_controller.ex b/lib/comfycamp_web/controllers/user_editor_controller.ex index 6d2c6e4..c0d2783 100644 --- a/lib/comfycamp_web/controllers/user_editor_controller.ex +++ b/lib/comfycamp_web/controllers/user_editor_controller.ex @@ -7,7 +7,11 @@ defmodule ComfycampWeb.UserEditorController do conn |> put_layout(html: :admin) - |> render(:index, page_title: "Пользователи", users: users) + |> render(:index, + page_title: "Пользователи", + users: users, + stylesheets: ["/assets/admin.css"] + ) end def show(conn, %{"id" => id}) do @@ -15,6 +19,6 @@ defmodule ComfycampWeb.UserEditorController do conn |> put_layout(html: :admin) - |> render(:show, page_title: user.email, user: user) + |> render(:show, page_title: user.email, user: user, stylesheets: ["/assets/admin.css"]) end end diff --git a/mix.exs b/mix.exs index d9031e7..b544e79 100644 --- a/mix.exs +++ b/mix.exs @@ -70,9 +70,10 @@ defmodule Comfycamp.MixProject do "ecto.reset": ["ecto.drop", "ecto.setup"], test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"], "assets.setup": ["esbuild.install --if-missing"], - "assets.build": ["esbuild comfycamp"], + "assets.build": ["esbuild comfycamp", "esbuild css"], "assets.deploy": [ "esbuild comfycamp --minify", + "esbuild css --minify", "phx.digest" ] ]