feat: Spruce up the links on the home page

This commit is contained in:
Robert Prehn 2021-03-25 16:29:12 -05:00
parent 02d8735d20
commit def0c8b804
4 changed files with 64 additions and 21 deletions

View file

@ -13,6 +13,22 @@
<div class="w-full flex-grow lg:flex lg:items-center lg:w-auto hidden lg:block pt-6 lg:pt-0" id="nav-content"> <div class="w-full flex-grow lg:flex lg:items-center lg:w-auto hidden lg:block pt-6 lg:pt-0" id="nav-content">
<ul class="list-reset lg:flex justify-end flex-1 items-center"> <ul class="list-reset lg:flex justify-end flex-1 items-center">
<li class="mr-3">
<%= link "Documentation",
to: "https://hexdocs.pm/legendary_core/",
target: "_blank",
rel: "nofollow",
class: "inline-block text-white no-underline hover:text-white hover:text-underline py-2 px-4"
%>
</li>
<li class="mr-3">
<%= link "Code",
to: "https://gitlab.com/mythic-insight/legendary",
target: "_blank",
rel: "nofollow",
class: "inline-block text-white no-underline hover:text-white hover:text-underline py-2 px-4"
%>
</li>
<%= if has_role?(@conn, :admin) do %> <%= if has_role?(@conn, :admin) do %>
<li class="mr-3"> <li class="mr-3">
<a class="inline-block py-2 px-4 text-white no-underline" href="/admin">Admin</a> <a class="inline-block py-2 px-4 text-white no-underline" href="/admin">Admin</a>

View file

@ -26,8 +26,16 @@
</div> </div>
</div> </div>
<div class="w-full lg:w-8/12 px-4 ml-auto mr-auto text-center my-12"> <div class="w-full lg:w-8/12 px-4 ml-auto mr-auto text-center my-12">
<%= styled_button_link "Log In", to: "/session/new" %> <%= styled_inverse_button_link "Documentation",
<%= styled_button_link "Sign Up", to: "/registration/new" %> to: "https://hexdocs.pm/legendary_core/",
target: "_blank",
rel: "nofollow"
%>
<%= styled_button_link "Code",
to: "https://gitlab.com/mythic-insight/legendary",
target: "_blank",
rel: "nofollow"
%>
</div> </div>
</div> </div>
</div> </div>
@ -97,12 +105,12 @@
</div> </div>
</div> </div>
<div class="flex flex-wrap items-center mt-32"> <div class="flex flex-wrap items-center mt-32">
<h2 class="w-full text-3xl text-center"> <h2 class="w-full text-4xl text-center text-indigo-500 font-bold">
Out of the Box Features Out of the Box Features
</h2> </h2>
<div class="w-full border-gray-400 border-t-2 border-b-2 py-12 px-4 mt-12 flex"> <div class="w-full border-gray-400 border-t-2 border-b-2 py-12 px-4 mt-12 flex">
<div class="lg:w-1/2 mr-12"> <div class="lg:w-1/2 mr-12">
<h1 class="text-2xl">Authentication</h1> <h1 class="text-2xl text-indigo-500 font-semibold">Authentication</h1>
<p class="text-xl mt-6"> <p class="text-xl mt-6">
Look, you don't want to build yet another auth system. You want to build an application. Authentication Look, you don't want to build yet another auth system. You want to build an application. Authentication
is a solved problem. With Legendary you don't need to reinvent the wheel. is a solved problem. With Legendary you don't need to reinvent the wheel.
@ -117,7 +125,7 @@
<img src="/images/content.svg" /> <img src="/images/content.svg" />
</div> </div>
<div class="lg:w-1/2 ml-12"> <div class="lg:w-1/2 ml-12">
<h1 class="text-2xl">Content Management</h1> <h1 class="text-2xl text-indigo-500 font-semibold">Content Management</h1>
<p class="text-xl mt-6"> <p class="text-xl mt-6">
Legendary comes with a simple content management system for building custom pages and blog posts. Don't Legendary comes with a simple content management system for building custom pages and blog posts. Don't
get stuck building simple content pages when your development talent is better spent elsewhere. get stuck building simple content pages when your development talent is better spent elsewhere.
@ -125,7 +133,7 @@
</div> </div>
<div class="w-full border-gray-400 border-b-2 py-12 px-4 flex"> <div class="w-full border-gray-400 border-b-2 py-12 px-4 flex">
<div class="lg:w-1/2 mr-12"> <div class="lg:w-1/2 mr-12">
<h1 class="text-2xl">Admin Dashboard</h1> <h1 class="text-2xl text-indigo-500 font-semibold">Admin Interface & Dashboard</h1>
<p class="text-xl mt-6"> <p class="text-xl mt-6">
There are plenty of tasks that don't require custom code. Legendary integrates the Kaffy admin dashboard There are plenty of tasks that don't require custom code. Legendary integrates the Kaffy admin dashboard
so that you can focus on what is unique to your application instead of churning out CRUD or editing database so that you can focus on what is unique to your application instead of churning out CRUD or editing database
@ -141,7 +149,7 @@
<img src="/images/tailwind.svg" /> <img src="/images/tailwind.svg" />
</div> </div>
<div class="lg:w-1/2 ml-12"> <div class="lg:w-1/2 ml-12">
<h1 class="text-2xl">Tailwind CSS</h1> <h1 class="text-2xl text-indigo-500 font-semibold">Tailwind CSS</h1>
<p class="text-xl mt-6"> <p class="text-xl mt-6">
Tailwind is a rad CSS framework that gives you the building blocks you need to implement Tailwind is a rad CSS framework that gives you the building blocks you need to implement
any design, without fighting a super-opinionated CSS framework. any design, without fighting a super-opinionated CSS framework.
@ -150,7 +158,7 @@
</div> </div>
<div class="w-full border-gray-400 border-b-2 py-12 px-4 pb-24 flex"> <div class="w-full border-gray-400 border-b-2 py-12 px-4 pb-24 flex">
<div class="lg:w-1/2"> <div class="lg:w-1/2">
<h1 class="text-2xl">Battle-tested Fluid Email Templates</h1> <h1 class="text-2xl text-indigo-500 font-semibold">Battle-tested Fluid Email Templates</h1>
<p class="text-xl mt-6"> <p class="text-xl mt-6">
HTML email is hard. But it's also a solved problem. We include an HTML email template and toolkit that has been HTML email is hard. But it's also a solved problem. We include an HTML email template and toolkit that has been
tested across all the major email clients from mobile to desktop. You probably didn't get into this to code yet tested across all the major email clients from mobile to desktop. You probably didn't get into this to code yet
@ -166,7 +174,7 @@
<img src="/images/infra.svg" /> <img src="/images/infra.svg" />
</div> </div>
<div class="lg:w-1/2 ml-12"> <div class="lg:w-1/2 ml-12">
<h1 class="text-2xl">Full DevOps Stack</h1> <h1 class="text-2xl text-indigo-500 font-semibold">Full DevOps Stack</h1>
<p class="text-xl mt-6"> <p class="text-xl mt-6">
Legendary includes a full set of CI / CD scripts so you can immediately Legendary includes a full set of CI / CD scripts so you can immediately
test and deploy your app as a semantically-versioned Docker test and deploy your app as a semantically-versioned Docker
@ -177,7 +185,7 @@
</div> </div>
<div class="w-full border-gray-400 py-12 px-4 pb-24 flex"> <div class="w-full border-gray-400 py-12 px-4 pb-24 flex">
<div class="lg:w-1/2"> <div class="lg:w-1/2">
<h1 class="text-2xl">And More.</h1> <h1 class="text-2xl text-indigo-500 font-semibold">And More.</h1>
<p class="text-xl mt-6"> <p class="text-xl mt-6">
A lot more. Like Background jobs, localization / internationalization, A lot more. Like Background jobs, localization / internationalization,
great out-of-the-box forms, list views, and detail pages. great out-of-the-box forms, list views, and detail pages.
@ -192,15 +200,28 @@
</section> </section>
<section class="bg-gray-100 py-12 pb-32"> <section class="bg-gray-100 py-12 pb-32">
<div class="relative mx-auto"> <div class="relative mx-auto">
<div class="items-center flex flex-wrap"> <div class="container mx-auto px-6">
<div class="w-full lg:w-8/12 px-4 ml-auto mr-auto text-center"> <div class="sm:flex sm:mt-8">
<h1 class="text-purple-600 font-semibold text-4xl"> <div class="mt-8 sm:mt-0 sm:w-full sm:px-8 flex flex-col md:flex-row justify-between">
What are you waiting for? <div class="flex flex-col">
</h1> <span class="font-bold text-gray-700 uppercase mb-2">Resources</span>
</div> <span class="my-2">
<div class="w-full lg:w-8/12 px-4 ml-auto mr-auto text-center my-12"> <%= link "Documentation",
<%= styled_button_link "Log In", to: "/session/new" %> to: "https://hexdocs.pm/legendary_core/",
<%= styled_button_link "Sign Up", to: "/registration/new" %> target: "_blank",
rel: "nofollow",
class: "text-indigo-500"
%>
</span>
<span class="my-2">
<%= link "Code",
to: "https://gitlab.com/mythic-insight/legendary",
target: "_blank",
rel: "nofollow",
class: "text-indigo-500"
%>
</span>
</div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -137,6 +137,12 @@ defmodule CoreWeb.Helpers do
""" """
end end
def styled_inverse_button_link(text, opts) do
~E"""
<%= link text, opts ++ [class: "bg-white text-black active:bg-gray-700 text-sm font-bold uppercase px-4 py-3 rounded shadow hover:shadow-lg outline-none focus:outline-none mr-1 mb-1 w-full"] %>
"""
end
def paginator(first..last, current, callback) do def paginator(first..last, current, callback) do
[first, current - 1, current, current + 1, last] [first, current - 1, current, current + 1, last]
|> Enum.sort() |> Enum.sort()

View file

@ -54,9 +54,9 @@
"phoenix_live_view": {:hex, :phoenix_live_view, "0.13.3", "2186c55cc7c54ca45b97c6f28cfd267d1c61b5f205f3c83533704cd991bdfdec", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.4.17 or ~> 1.5.2", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14", [hex: :phoenix_html, repo: "hexpm", optional: false]}], "hexpm", "c6309a7da2e779cb9cdf2fb603d75f38f49ef324bedc7a81825998bd1744ff8a"}, "phoenix_live_view": {:hex, :phoenix_live_view, "0.13.3", "2186c55cc7c54ca45b97c6f28cfd267d1c61b5f205f3c83533704cd991bdfdec", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.4.17 or ~> 1.5.2", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14", [hex: :phoenix_html, repo: "hexpm", optional: false]}], "hexpm", "c6309a7da2e779cb9cdf2fb603d75f38f49ef324bedc7a81825998bd1744ff8a"},
"phoenix_pubsub": {:hex, :phoenix_pubsub, "2.0.0", "a1ae76717bb168cdeb10ec9d92d1480fec99e3080f011402c0a2d68d47395ffb", [:mix], [], "hexpm", "c52d948c4f261577b9c6fa804be91884b381a7f8f18450c5045975435350f771"}, "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.0.0", "a1ae76717bb168cdeb10ec9d92d1480fec99e3080f011402c0a2d68d47395ffb", [:mix], [], "hexpm", "c52d948c4f261577b9c6fa804be91884b381a7f8f18450c5045975435350f771"},
"php_serializer": {:hex, :php_serializer, "0.9.2", "59c5fd6bd3096671fd89358fb8229341ac7423b50ad8d45a15213b02ea2edab2", [:mix], [], "hexpm", "34eb835a460944f7fc216773b363c02e7dcf8ac0390c9e9ccdbd92b31a7ca59a"}, "php_serializer": {:hex, :php_serializer, "0.9.2", "59c5fd6bd3096671fd89358fb8229341ac7423b50ad8d45a15213b02ea2edab2", [:mix], [], "hexpm", "34eb835a460944f7fc216773b363c02e7dcf8ac0390c9e9ccdbd92b31a7ca59a"},
"plug": {:hex, :plug, "1.11.0", "f17217525597628298998bc3baed9f8ea1fa3f1160aa9871aee6df47a6e4d38e", [:mix], [{:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "2d9c633f0499f9dc5c2fd069161af4e2e7756890b81adcbb2ceaa074e8308876"}, "plug": {:hex, :plug, "1.11.1", "f2992bac66fdae679453c9e86134a4201f6f43a687d8ff1cd1b2862d53c80259", [:mix], [{:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "23524e4fefbb587c11f0833b3910bfb414bf2e2534d61928e920f54e3a1b881f"},
"plug_cowboy": {:hex, :plug_cowboy, "2.4.1", "779ba386c0915027f22e14a48919a9545714f849505fa15af2631a0d298abf0f", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "d72113b6dff7b37a7d9b2a5b68892808e3a9a752f2bf7e503240945385b70507"}, "plug_cowboy": {:hex, :plug_cowboy, "2.4.1", "779ba386c0915027f22e14a48919a9545714f849505fa15af2631a0d298abf0f", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "d72113b6dff7b37a7d9b2a5b68892808e3a9a752f2bf7e503240945385b70507"},
"plug_crypto": {:hex, :plug_crypto, "1.2.1", "5c854427528bf61d159855cedddffc0625e2228b5f30eff76d5a4de42d896ef4", [:mix], [], "hexpm", "6961c0e17febd9d0bfa89632d391d2545d2e0eb73768f5f50305a23961d8782c"}, "plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"},
"postgrex": {:hex, :postgrex, "0.15.5", "aec40306a622d459b01bff890fa42f1430dac61593b122754144ad9033a2152f", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "ed90c81e1525f65a2ba2279dbcebf030d6d13328daa2f8088b9661eb9143af7f"}, "postgrex": {:hex, :postgrex, "0.15.5", "aec40306a622d459b01bff890fa42f1430dac61593b122754144ad9033a2152f", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "ed90c81e1525f65a2ba2279dbcebf030d6d13328daa2f8088b9661eb9143af7f"},
"pow": {:hex, :pow, "1.0.20", "b99993811af5233681bfc521e81ca706d25a56f2be54bad6424db327ce840ab9", [:mix], [{:ecto, "~> 2.2 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix, ">= 1.3.0 and < 1.6.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, ">= 2.0.0 and <= 3.0.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:plug, ">= 1.5.0 and < 2.0.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "4b6bd271399ccb353abbdbdc316199fe7fd7ae36bbf47059d53e366831c34fc8"}, "pow": {:hex, :pow, "1.0.20", "b99993811af5233681bfc521e81ca706d25a56f2be54bad6424db327ce840ab9", [:mix], [{:ecto, "~> 2.2 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix, ">= 1.3.0 and < 1.6.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, ">= 2.0.0 and <= 3.0.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:plug, ">= 1.5.0 and < 2.0.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "4b6bd271399ccb353abbdbdc316199fe7fd7ae36bbf47059d53e366831c34fc8"},
"quantum": {:hex, :quantum, "2.4.0", "f2ad4b20988f848455d35ed0e884ba0c7629a27ee86cbec6a6e0fc214b6e69cf", [:mix], [{:calendar, "~> 0.17", [hex: :calendar, repo: "hexpm", optional: true]}, {:crontab, "~> 1.1", [hex: :crontab, repo: "hexpm", optional: false]}, {:gen_stage, "~> 0.12 or ~> 1.0", [hex: :gen_stage, repo: "hexpm", optional: false]}, {:swarm, "~> 3.3", [hex: :swarm, repo: "hexpm", optional: false]}, {:timex, "~> 3.1", [hex: :timex, repo: "hexpm", optional: true]}, {:tzdata, "~> 1.0", [hex: :tzdata, repo: "hexpm", optional: true]}], "hexpm", "a125a9e65a5af740a1198f3b05c1a736fce3942f5e0dc2901e0f9be5745bea99"}, "quantum": {:hex, :quantum, "2.4.0", "f2ad4b20988f848455d35ed0e884ba0c7629a27ee86cbec6a6e0fc214b6e69cf", [:mix], [{:calendar, "~> 0.17", [hex: :calendar, repo: "hexpm", optional: true]}, {:crontab, "~> 1.1", [hex: :crontab, repo: "hexpm", optional: false]}, {:gen_stage, "~> 0.12 or ~> 1.0", [hex: :gen_stage, repo: "hexpm", optional: false]}, {:swarm, "~> 3.3", [hex: :swarm, repo: "hexpm", optional: false]}, {:timex, "~> 3.1", [hex: :timex, repo: "hexpm", optional: true]}, {:tzdata, "~> 1.0", [hex: :tzdata, repo: "hexpm", optional: true]}], "hexpm", "a125a9e65a5af740a1198f3b05c1a736fce3942f5e0dc2901e0f9be5745bea99"},