Packages

🍩 Lustre Bindings to Oat UI Components

Current section

Files

Jump to
glaze_oat src glaze_oat@skeleton.erl
Raw

src/glaze_oat@skeleton.erl

-module(glaze_oat@skeleton).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/glaze_oat/skeleton.gleam").
-export([skeleton/1, line/1, box/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" Oat documentation: <https://oat.ink/components/skeleton/>\n"
"\n"
" Skeleton placeholders for loading layouts.\n"
"\n"
" ## Anatomy\n"
"\n"
" Use [`line`](#line) for text placeholders and [`box`](#box) for block\n"
" placeholders. Both are convenience helpers built on [`skeleton`](#skeleton).\n"
"\n"
" ## Recipe\n"
"\n"
" ```gleam\n"
" import glaze_oat/skeleton\n"
"\n"
" [\n"
" skeleton.line([]),\n"
" skeleton.line([]),\n"
" skeleton.box([]),\n"
" ]\n"
" ```\n"
"\n"
" ## References\n"
"\n"
" - MDN ARIA `status` role:\n"
" <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/status_role>\n"
).
-file("src/glaze_oat/skeleton.gleam", 31).
-spec skeleton(list(lustre@vdom@vattr:attribute(QNS))) -> lustre@vdom@vnode:element(QNS).
skeleton(Attrs) ->
lustre@element@html:'div'(
[lustre@attribute:class(<<"skeleton"/utf8>>),
lustre@attribute:role(<<"status"/utf8>>) |
Attrs],
[]
).
-file("src/glaze_oat/skeleton.gleam", 35).
-spec line(list(lustre@vdom@vattr:attribute(QNW))) -> lustre@vdom@vnode:element(QNW).
line(Attrs) ->
skeleton([lustre@attribute:class(<<"line"/utf8>>) | Attrs]).
-file("src/glaze_oat/skeleton.gleam", 39).
-spec box(list(lustre@vdom@vattr:attribute(QOA))) -> lustre@vdom@vnode:element(QOA).
box(Attrs) ->
skeleton([lustre@attribute:class(<<"box"/utf8>>) | Attrs]).