diff --git a/assets/css/app.css b/assets/css/app.css index 378c8f9..f9da58f 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -1,5 +1,30 @@ -@import "tailwindcss/base"; -@import "tailwindcss/components"; -@import "tailwindcss/utilities"; +@import 'tailwindcss/base'; +@import 'tailwindcss/components'; +@import 'tailwindcss/utilities'; /* This file is for your main application CSS */ + +.outline-black { + text-shadow: + -1px -1px 0 black, + 1px -1px 0 black, + -1px 1px 0 black, + 1px 1px 0 black; +} + +.outline-gray { + text-shadow: + -1px -1px 0 gray, + 1px -1px 0 gray, + -1px 1px 0 gray, + 1px 1px 0 gray; +} + +.outline-white { + color: white; + text-shadow: + -1px -1px 0 white, + 1px -1px 0 white, + -1px 1px 0 white, + 1px 1px 0 white; +} diff --git a/lib/labelmaker_web/constants.ex b/lib/labelmaker_web/constants.ex index ef98122..f1061ad 100644 --- a/lib/labelmaker_web/constants.ex +++ b/lib/labelmaker_web/constants.ex @@ -7,7 +7,19 @@ defmodule LabelmakerWeb.Constants do size: "24" } - @permitted_keys @defaults |> Map.keys() |> Enum.map(&Atom.to_string/1) + @preview %{ + preview_height: @defaults.size, + preview_text: [] + } + + @stringview @preview + |> Enum.map(fn {k, v} -> {Atom.to_string(k), v} end) + |> Map.new() + + @permitted_keys @defaults + |> Map.merge(@preview) + |> Map.keys() + |> Enum.map(&Atom.to_string/1) @colors System.cmd("magick", ["-list", "color"]) |> elem(0) @@ -40,5 +52,7 @@ defmodule LabelmakerWeb.Constants do def max_label_length, do: @max_label_length def outlines, do: @outlines def permitted_keys, do: @permitted_keys + def preview, do: @preview def sizes, do: @sizes + def stringview, do: @stringview end diff --git a/lib/labelmaker_web/live/home.ex b/lib/labelmaker_web/live/home.ex index 59601c8..d3d2ebe 100644 --- a/lib/labelmaker_web/live/home.ex +++ b/lib/labelmaker_web/live/home.ex @@ -4,17 +4,29 @@ defmodule LabelmakerWeb.Home do alias LabelmakerWeb.Tools def mount(_params, _session, socket) do + assigns = + Constants.defaults() + |> Map.replace(:label, "") + |> Map.merge(Constants.preview()) + |> Enum.to_list() + { :ok, assign( socket, - Enum.to_list(%{Constants.defaults() | label: ""}) + assigns ) } end def handle_event("update_label", params, socket) do - {:noreply, assign(socket, Tools.process_parameters(params))} + assigns = + params + |> Map.merge(Constants.stringview()) + |> Tools.process_parameters() + |> Enum.to_list() + + {:noreply, assign(socket, assigns)} end def handle_event("make_label", params, socket) do @@ -26,14 +38,17 @@ defmodule LabelmakerWeb.Home do