olivermt
Without further ado: GitHub - surface-ui/surface_bootstrap · GitHub
Some TODOs:
- Get it up under https://bootstrap.surface-ui.org and get it linked from main surface docs
- Some utility classes for rows and grids, just need to think a bit more on how to make it oppinionated enough to be useful in saving time but also allowing the insane amounts of permutations you need to do to full flexbox stuff
- Tooltips and popovers coming soon ™
I hope this library will seriously lower the bar for people to start using Surface and be able to pump out pages using the Comic Sans of the internet ![]()
Thanks a dozen to all my sparring partners on the Slack in getting this out: @msaraiva @paulstatezny @Malian and many more.
Open issues for any bugs or feature requests!
Trending in Announcing
WebAuthnLiveComponent WebAuthnComponents
See this post about renaming the package.
Passwordless authentication for Phoenix LiveView app...
New
Edit: 2026 May 15 - This post is archived.
Mob is alive!!
Main docs: mob v0.7.11 — Documentation
A bit of explanation for the slightly c...
New
I released Doggo, a collection of unstyled Phoenix components.
https://github.com/woylie/doggo
Features
Unstyled Phoenix components....
New
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
Hi everyone,
I’ve been working on this protobuf library for 3 years. We use it in the company I work for, EasyMile, to communicate with ...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
I’ll shortly be launching Text, a nascent text analysis library.
Current functionality
In this early version (not ready for prime time) ...
New
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
A little off-topic, but I feel like people here have a good head on their shoulders.
I used to be quite good at making software. Was luc...
New
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself.
My main conc...
New
Hey folks,
I just published a post about Hologram’s funding and where the project goes next - the short version:
Curiosum as Main Spons...
New
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with.
But I don’t use it anymore.
Serverless was the promis...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ai
- #ecto-query
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #metaprogramming
- #hex










Showing Posts 1 to 7- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
the_wildgoose
This looks fantastic! Huge fan of Surface! (If anyone hasn’t tried it, then give it a whirl!)
One thought: I had a colleague struggle with integrating a modal popup and I took a glance. It seems like at least the modal can be emulated fairly simply without the bootstrap JS? It appears to just hide/show the modal div + cover the whole page with an inserted overlay. I wonder if there is another route to integration here without the hooks? Just a thought?
olivermt
Hey!
Thanks for the feedback.
I spent almost two full days trying to make it work well without the hook approach, but the Bootstrap CSS just isnt built in a way that it works nice.
For example to get the proper coloring on the backdrop (the darker shade thing) you need to add a class to the body etc. What you could do is just follow the tutorial on how to make a Modal that is included in Liveview itself and then combine that with a Card or similar to get something more or less visually the same.
I do have a long term plan to release a bootstrap-looking “NativeModal” component, but I want to get breadcrumbs, my navbar redesign and the accordions / collapsibles in place first.
olivermt
Also @the_wildgoose it would be tremendously helpful if your colleague could make an issue at GitHub - surface-ui/surface_bootstrap · GitHub with what he felt was hard / not good about it so I can track feedback
olivermt
Small maintenance release 0.1.1.
Coming up in next few days is:
olivermt
v0.2.0 released!
Migrate to Surface 0.4.1 (atoms not auto-cast anymore), has to be 0.4.1 or above because 0.4.0 swamps with compiler warnings due to a change in LiveView
[BREAKING CHANGE] Completely rework NavBar, look at examples to see how to use NavBar. It has been moved to only implement the outer and main components as I was unable to find a proper middleway for all the permutations. This is a BREAKING CHANGE because the old NavBar was naively done and could not support sidebars, and it also did not implement the collapser properly.
Added a naive tooltip implementation, injects a with random ID, so it might provoke rerenders.
Exposed a hook you can simply use with
:hook={{ "Hook", from: SurfaceBootstrap.Tooltip }}. This requires you to put a unique HTML ID on your component, as this is a requirements for hooks to fire.olivermt
v0.2.3 (2021-06-22) released!
Icon.valuesprop to Button that passes on to:valuesdirective.optsprop to Button to pass on as attrs on<button>olivermt
v0.2.4 (2021-06-23)
v0.2.5 (2021-06-23)
Breadcrumb