Skip to content

HTML elements

For every HTML element, there’s a Ruby method with the same name. Standard Elements that take a content block yield the current component by default. The one exception is svg, which yields a Phlex::SVG component.

Custom elements

If you need to register a custom HTML element (e.g. for a web component) you can use the class method register_element. This will define an instance method that you can use in your template. Underscores (_) will be replaced with dashes (-).

ruby
class Example < Phlex::HTML
  register_element :trix_editor

  def view_template
    trix_editor
  end
end

a

Renders an <a> element.

abbr

Renders an <abbr> element.

address

Renders an <address> element.

area

Renders an <area> element.

article

Renders an <article> element.

aside

Renders an <aside> element.

audio

Renders an <audio> element.

b

Renders a <b> element.

base

Renders a <base> element.

bdi

Renders a <bdi> element.

bdo

Renders a <bdo> element.

blockquote

Renders a <blockquote> element.

body

Renders a <body> element.

br

Renders a <br> element.

button

Renders a <button> element.

canvas

Renders a <canvas> element.

caption

Renders a <caption> element.

cite

Renders a <cite> element.

code

Renders a <code> element.

col

Renders a <col> element.

colgroup

Renders a <colgroup> element.

data

Renders a <data> element.

datalist

Renders a <datalist> element.

dd

Renders a <dd> element.

del

Renders a <del> element.

details

Renders a <details> element.

dfn

Renders a <dfn> element.

dialog

Renders a <dialog> element.

div

Renders a <div> element.

dl

Renders a <dl> element.

dt

Renders a <dt> element.

em

Renders an <em> element.

embed

Renders an <embed> element.

fieldset

Renders a <fieldset> element.

figcaption

Renders a <figcaption> element.

figure

Renders a <figure> element.

Renders a <footer> element.

form

Renders a <form> element.

h1

Renders an <h1> element.

h2

Renders an <h2> element.

h3

Renders an <h3> element.

h4

Renders an <h4> element.

h5

Renders an <h5> element.

h6

Renders an <h6> element.

Renders a <head> element.

Renders a <header> element.

hgroup

Renders a <hgroup> element.

hr

Renders an <hr> element.

html

Renders an <html> element.

i

Renders an <i> element.

iframe

Renders an <iframe> element.

img

Renders an <img> element.

input

Renders an <input> element.

ins

Renders an <ins> element.

kbd

Renders a <kbd> element.

label

Renders a <label> element.

legend

Renders a <legend> element.

li

Renders an <li> element.

Renders a <link> element.

main

Renders a <main> element.

map

Renders a <map> element.

mark

Renders a <mark> element.

Renders a <menu> element.

meta

Renders a <meta> element.

meter

Renders a <meter> element.

Renders a <nav> element.

noscript

Renders a <noscript> element.

object

Renders an <object> element.

ol

Renders an <ol> element.

optgroup

Renders an <optgroup> element.

option

Renders an <option> element.

output

Renders an <output> element.

p

Renders a <p> element.

picture

Renders a <picture> element.

pre

Renders a <pre> element.

progress

Renders a <progress> element.

q

Renders a <q> element.

rp

Renders an <rp> element.

rt

Renders an <rt> element.

ruby

Renders a <ruby> element.

s

Renders an <s> element.

samp

Renders a <samp> element.

script

Renders a <script> element.

Renders a <search> element.

section

Renders a <section> element.

select

Renders a <select> element.

slot

Renders a <slot> element.

small

Renders a <small> element.

source

Renders a <source> element.

span

Renders a <span> element.

strong

Renders a <strong> element.

style

Renders a <style> element.

sub

Renders a <sub> element.

summary

Renders a <summary> element.

sup

Renders a <sup> element.

svg

Renders an <svg> element. This method yields a new Phlex::SVG component.

ruby
svg do |s|
  s.rect x: 10, y: 10, width: 100, height: 100
end

table

Renders a <table> element.

tbody

Renders a <tbody> element.

td

Renders a <td> element.

template

Renders a <template> element.

textarea

Renders a <textarea> element.

tfoot

Renders a <tfoot> element.

th

Renders a <th> element.

thead

Renders a <thead> element.

time

Renders a <time> element.

title

Renders a <title> element.

tr

Renders a <tr> element.

track

Renders a <track> element.

u

Renders a <u> element.

ul

Renders a <ul> element.

var

Renders a <var> element.

video

Renders a <video> element.

wbr

Renders a <wbr> element.