Use this kit to display monetary amounts, typically on dashboards or other layouts to show an overview or summary. Pairing it with labels improves user understanding.
Cents are automatically ".00" unless otherwise overwritten (i.e. unit prop).
NOTE: The value passed into the amount prop can be either a string or numeric value.
<%= pb_rails("currency", props: { amount: "30,327.43", label: "Default", size: "sm", margin_bottom: "md", }) %> <%= pb_rails("currency", props: { amount: "2,000.50", emphasized: false, label: "Emphasized False", margin_bottom: "md", size: "sm", }) %> <%= pb_rails("currency", props: { amount: 342, label: "Light", margin_bottom: "md", size: "sm", symbol: "€", variant: "light", emphasized: false, }) %> <%= pb_rails("currency", props: { amount: "45", label: "Bold", size: "sm", unit: "/mo", variant: "bold", }) %>
<%= pb_rails("currency", props: { amount: "2,000.50", label: "Small", margin_bottom: "md", size: "sm", }) %> <%= pb_rails("currency", props: { amount: "342", label: "Medium", margin_bottom: "md", size: "md", symbol: "€", }) %> <%= pb_rails("currency", props: { amount: "45", label: "Large", size: "lg", unit: "/mo", }) %>
<%= pb_rails("currency", props: { amount: "2,000.50", label: "Left", size: "sm", }) %> <%= pb_rails("currency", props: { align: "center", amount: "342", label: "Center", size: "sm", symbol: "€", }) %> <%= pb_rails("currency", props: { align: "right", amount: "45", label: "Right", unit: "/mo", size: "sm", }) %>
Remove the "$" symbol by setting an empty string: symbol: "".
Abbreviate larger amounts into thousands (K), millions (M), billions (B), and even trillions (T).
<%= pb_rails("currency", props: { abbreviate: true, amount: "2,200.50", label: "Thousands (with Unit)", margin_bottom: "md", unit: "/mo", }) %> <%= pb_rails("currency", props: { abbreviate: true, amount: "3424123", label: "Millions", margin_bottom: "md", }) %> <%= pb_rails("currency", props: { abbreviate: true, amount: "45,300,000,000", label: "Billions", margin_bottom: "md", }) %> <%= pb_rails("currency", props: { abbreviate: true, amount: "983,200,000,000,000", label: "Trillions", }) %>
Use decimals: "matching" when you want the full decimal amount displayed as a single number rather than split visually.
<%= pb_rails("currency", props: { amount: "372.12", decimals: "matching", label: "Small", margin_bottom: "md", size: "sm", unit: "/day", }) %> <%= pb_rails("currency", props: { amount: "30,327.43", decimals: "matching", label: "Medium", margin_bottom: "md", size: "md", symbol: "€", }) %> <%= pb_rails("currency", props: { amount: "621,953.99", decimals: "matching", label: "Large", size: "lg", }) %>
For alternative typography styles, you can pass a boolean prop called unstyled to the Currency kit and wrap it in any of our typography kits (Title, Body, Caption, etc.). This will allow the Currency kit to inherit any of our typography styles.
<%= pb_rails("currency", props: { amount: "2,000.50", label: "Basic unstyled example", margin_bottom: "md", unstyled: true }) %> <%= pb_rails("title", props: { size: 1 }) do %> <%= pb_rails("currency", props: { amount: "2,000.50", label: "Example with wrapping typography kit", unstyled: true }) %> <% end %>
The optional commaSeparator can be used to auto-format the use of commas as a thousands separator.
NOTE: If the value passed into the amount prop is already comma-dilineated, it will not add additional commas.
Small Currency kits have the negative sign on the lefthand side of the "$" symbol.
To customize how the amount field appears when it is empty, use the null_display prop and set it to the desired value you want to display.
<%= pb_rails("currency", props: { amount: "", label: "Nil", margin_bottom: "md", null_display: "--", size: "sm" }) %> <%= pb_rails("currency", props: { amount: "", label: "Nil", margin_bottom: "md", null_display: "$0.00", size: "sm" }) %> <%= pb_rails("currency", props: { amount: "", label: "Nil", null_display: " ", size: "sm" }) %>
| Props | Type | Values |
|---|---|---|
align_content |
enum | responsive
|
start
end
center
spaceBetween
spaceAround
spaceEvenly
|
align_items |
enum | responsive
|
start
end
center
|
border_radius |
enum
|
none
xs
sm
md
lg
xl
rounded
|
cursor |
enum
|
auto
default
none
contextMenu
help
pointer
progress
wait
cell
|
dark |
boolean
|
true
false
|
flex |
enum | responsive
|
auto
initial
0
1
2
3
4
5
6
7
8
9
10
11
12
none
|
flex_direction |
enum | responsive
|
row
column
rowReverse
columnReverse
|
flex_wrap |
enum | responsive
|
wrap
nowrap
wrapReverse
|
justify_content |
enum | responsive
|
start
end
center
spaceBetween
spaceAround
spaceEvenly
|
line_height |
enum
|
loosest
looser
loose
normal
tight
tighter
tightest
|
margin_right |
array
|
none
xxs
xs
sm
md
lg
xl
|
margin_left |
array
|
none
xxs
xs
sm
md
lg
xl
|
margin_top |
array
|
none
xxs
xs
sm
md
lg
xl
|
margin_bottom |
array
|
none
xxs
xs
sm
md
lg
xl
|
margin_x |
array
|
none
xxs
xs
sm
md
lg
xl
|
margin_y |
array
|
none
xxs
xs
sm
md
lg
xl
|
margin |
array
|
none
xxs
xs
sm
md
lg
xl
|
width |
string
|
|
min_width |
string
|
|
max_width |
string
|
|
gap |
string | responsive
|
|
column_gap |
string | responsive
|
|
row_gap |
string | responsive
|
|
number_spacing |
enum
|
tabular
|
order |
enum | responsive
|
none
first
1
2
3
4
5
6
7
8
9
10
11
12
|
overflow_x |
enum
|
scroll
visible
hidden
auto
|
overflow_y |
enum
|
scroll
visible
hidden
auto
|
overflow |
enum
|
scroll
visible
hidden
auto
|
padding_right |
array
|
none
xxs
xs
sm
md
lg
xl
|
padding_left |
array
|
none
xxs
xs
sm
md
lg
xl
|
padding_top |
array
|
none
xxs
xs
sm
md
lg
xl
|
padding_bottom |
array
|
none
xxs
xs
sm
md
lg
xl
|
padding_x |
array
|
none
xxs
xs
sm
md
lg
xl
|
padding_y |
array
|
none
xxs
xs
sm
md
lg
xl
|
padding |
array
|
none
xxs
xs
sm
md
lg
xl
|
position |
enum
|
relative
absolute
fixed
sticky
static
|
shadow |
enum
|
none
deep
deeper
deepest
|
text_align |
enum | responsive
|
start
end
left
right
center
justify
justifyAll
matchParent
|
truncate |
enum
|
none
1
2
3
4
5
|
vertical_align |
enum | responsive
|
baseline
super
top
middle
bottom
sub
text-top
text-bottom
|
z_index |
enum | responsive
|
1
2
3
4
5
6
7
8
9
10
max
|
top |
enum | object
|
xxs
xs
sm
md
lg
xl
xxl
|
inset |
boolean
|
true
false
|
right |
enum | object
|
xxs
xs
sm
md
lg
xl
xxl
|
bottom |
enum | object
|
xxs
xs
sm
md
lg
xl
xxl
|
left |
enum | object
|
xxs
xs
sm
md
lg
xl
xxl
|
height |
string
|
|
max_height |
string
|
|
min_height |
string
|
|
hover |
object
|
|
group_hover |
boolean
|
true
false
|
| Props | Type | Values | Default |
|---|---|---|---|
abbreviate |
boolean
|
true
false
|
false
|
align |
enum
|
center
left
right
|
left
|
amount |
string | number
|
||
decimals |
enum
|
default
matching
|
default
|
emphasized |
boolean
|
true
false
|
true
|
label |
string
|
||
null_display |
string
|
||
size |
enum
|
sm
md
lg
|
md
|
symbol |
string
|
$
|
|
variant |
enum
|
default
light
bold
|
default
|
unit |
string
|
||
unstyled |
boolean
|
true
false
|
false
|
comma_separator |
boolean
|
true
false
|
false
|