phoenix_live_view
pico
Our great sponsors
phoenix_live_view | pico | |
---|---|---|
30 | 64 | |
5,722 | 11,969 | |
1.9% | 6.8% | |
9.8 | 9.3 | |
4 days ago | 15 days ago | |
Elixir | CSS | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
phoenix_live_view
-
Coming to grips with JS: a Rubyist's deep dive
Then there are stack-specific libraries: StimulusReflex for Rails, Phoenix LiveView, Laravel Livewire, Unicorn and Tetra for Django, Blazor for .NET, … and the list goes on.
-
Undead - LiveViews for the JVM
I came across this pretty interesting library on Hacker News that tries to implement LiveView on the JVM. Link to GitHub.
-
Show HN: Podsee – AI tool for podcast listeners
Hi everyone, I just launched Podsee(https://pods.ee) for podcast listeners, lovers. You can search and listen to podcasts at Podsee. What makes it different is that you can get the AI transcript for an episode.
It started as a side project after I resigned my job one year ago. As a programmer, I love Elixir (http://elixir-lang.org/) and Phoenix LiveView(https://github.com/phoenixframework/phoenix_live_view), and want to make a product with it. So I build Podsee.
I'm planning to add more AI features to it, like summarize the episode audio, episode to comics, etc.
I'd love to invite you all to try out the product and would appreciate hearing your feedback! Thanks!
-
Ask HN: What companies are embracing “HTML over the wire”?
"HTML over the wire" generally refers to tech like [0] Liveview, [1] Hotwire, [2] LiveView, [3] Blazor, etc. They aren't about about ditching JS and more about not writing your HTML in JS (and yes, SSR).
- Alpine.js
-
Phoenix 1.7 is View-less
Some of the 1.7 stuff has an alert banner that pops up when the connection is broken. I think that could really help.
However I haven't put that in our app as I have seen other issues of flakey connection reconnect issues, and I would hate to make any of those more visible with a flashing notice.
- https://github.com/phoenixframework/phoenix_live_view/issues...
-
What did I miss?
HEEx template language was created, an extension to EEx
-
How to get started with LiveView?
Also to your point, the latest LiveView release moved some helper utilities around and you need to add "import Phoenix.Component" in places. I could be wrong but I think the latest live code gen still isn't setting up correct imports. More info here: https://github.com/phoenixframework/phoenix_live_view/blob/master/CHANGELOG.md
-
Ask HN: What's is your go to toolset for simple front end development?
If you need any kind of interactivity on the frontend, but are more comfortable with the backend, I would suggest looking at Phoenix LiveView [0] or a similar server-rendered HTML technology for your language of your choice [1].
In short, these solutions take JavaScript out of the mix entirely and basically let you deal with a single logical "app", rather than a separate frontend & backend.
-
Should I stop trying to learn HTML/JavaScript?
It uses JS though, as it is required to open a WS connection and change content without refreshing the page, but that looks like it is abstracted from the user. https://github.com/phoenixframework/phoenix_live_view/tree/master/priv/static
pico
-
Concrete.css
Modern CSS stylesheets include configurability via CSS variables on the root element so maybe that's where the "framework" comes from.
Also note: This project looks like an even more minimized version of PicoCSS [1]
-
Show HN: A template for Markdown-based sites (no static site generator required)
The templates grabs Markdown file data with XMLHttpRequest and converts it to HTML with https://showdownjs.com/ . Classless styles are done with https://picocss.com/ and code block syntax highlighting is done with https://highlightjs.org/ .
GitHub repo: https://github.com/dandalpiaz/markdown-pages
-
HTML Web Components: An Example
This is exactly why I love HTMX [1] in combination with PicoCSS[2]. HTMX is just the regular html elements with ajax extensions built into the tags (it is a js library currently but they plan on lobbying to have these as default functionalities with HTML in the future) and picoCSS also works without classes so you are "trained" to use the semantic tags for the page to be rendered beautifully
-
Crafting A Minimalist Portfolio Website with SvelteKit and Pico CSS
/*! * Minimal theme switcher * * Pico.css - https://picocss.com * Copyright 2019-2023 - Licensed under MIT */ /** * Minimal theme switcher * * @namespace * @typedef {Object} ThemeSwitcher * @property {string} _scheme - The current color scheme ("auto", "light", or "dark"). * @property {string} menuTarget - The selector for the menu element that contains theme switchers. * @property {string} buttonsTarget - The selector for theme switcher buttons. * @property {string} buttonAttribute - The attribute name used for theme switcher buttons. * @property {string} rootAttribute - The attribute name used for the root HTML element to store the selected theme. * @property {string} localStorageKey - The key used to store the preferred color scheme in local storage. */ export const ThemeSwitcher = { // Config _scheme: 'auto', menuTarget: "details[role='list']", buttonsTarget: 'a[data-theme-switcher]', buttonAttribute: 'data-theme-switcher', rootAttribute: 'data-theme', localStorageKey: 'picoPreferredColorScheme', /** * Initialize the theme switcher. * * @function * @memberof ThemeSwitcher */ init() { this.scheme = this.schemeFromLocalStorage || this.preferredColorScheme; this.initSwitchers(); }, /** * Get the color scheme from local storage or use the preferred color scheme. * * @function * @memberof ThemeSwitcher * @returns {string|null} The color scheme ("light", "dark", or null). */ get schemeFromLocalStorage() { if (typeof window.localStorage !== 'undefined') { if (window.localStorage.getItem(this.localStorageKey) !== null) { return window.localStorage.getItem(this.localStorageKey); } } return this._scheme; }, /** * Get the preferred color scheme based on user preferences. * * @function * @memberof ThemeSwitcher * @returns {string} The preferred color scheme ("light" or "dark"). */ get preferredColorScheme() { return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; }, /** * Initialize the theme switcher buttons and their click events. * * @function * @memberof ThemeSwitcher */ initSwitchers() { const buttons = document.querySelectorAll(this.buttonsTarget); buttons.forEach((button) => { button.addEventListener( 'click', (event) => { event.preventDefault(); // Set scheme this.scheme = button.getAttribute(this.buttonAttribute) || 'auto'; // Close dropdown document.querySelector(this.menuTarget)?.removeAttribute('open'); }, false ); }); }, /** * Set the selected color scheme and update the UI. * * @function * @memberof ThemeSwitcher * @param {string} scheme - The color scheme to set ("auto", "light", or "dark"). */ set scheme(scheme) { if (scheme == 'auto') { this.preferredColorScheme == 'dark' ? (this._scheme = 'dark') : (this._scheme = 'light'); } else if (scheme == 'dark' || scheme == 'light') { this._scheme = scheme; } this.applyScheme(); this.schemeToLocalStorage(); }, /** * Get the current color scheme. * * @function * @memberof ThemeSwitcher * @returns {string} The current color scheme ("auto", "light", or "dark"). */ get scheme() { return this._scheme; }, /** * Apply the selected color scheme to the HTML root element. * * @function * @memberof ThemeSwitcher */ applyScheme() { document.querySelector('html')?.setAttribute(this.rootAttribute, this.scheme); }, /** * Store the selected color scheme in local storage. * * @function * @memberof ThemeSwitcher */ schemeToLocalStorage() { if (typeof window.localStorage !== 'undefined') { window.localStorage.setItem(this.localStorageKey, this.scheme); } } };
-
Why everybody speaks only about Tailwind, what happened to Boo0strap?
I personally prefer Bootstrap to Tailwind, but my favorite is https://picocss.com/
Usually, I just want decent-looking default CSS styles. The benefits of a CSS framework have diminishing returns when using frameworks with styles scoped to components (like SvelteKit/Vue/React).
The fact Tailwind removes all styles so you can't even tell a button is a button unless you add classes is annoying. If you know the class names, sometimes it's a little more convenient to add Tailwind classes, but for the most part it just clutters the HTML. And it makes it difficult to update entire "classes" of elements: you have to update each element one at a time.
-
Modern CSS Framework or Library for Static Websites?
Do you want to customize it or get something that looks decent out of the box? Consider something like Pico.css which is just a stylesheet that can even be used classless. It just styles the native HTML elements in a nice way and nothing more.
-
Getting started with Pico CSS
According to its homepage, Pico is a minimal CSS framework for semantic HTML. Pico styles the built-in HTML elements so that when you’re building a small app, you don’t need to write a lot of custom CSS.
Here, Pico CSS comes into the picture. In some ways, it is the anti-Tailwind library. Pico CSS discourages using a large number of .classes in your application. Instead, it styles the semantic HTML elements in such a way that you don’t need to write a lot of code yourself.
-
how to choose a tech stack for a personal project
For styling you could try daisyUI on top of tailwind or you could use something like https://picocss.com
-
Ask HN: How do I make a website in 2023?
I still write basic HTML, styled using any of a number of simple classless CSS templates, like Pico.
What are some alternatives?
Svelte - Cybernetically enhanced web apps
htmx - </> htmx - high power tools for HTML
hotwire-rails - Use Hotwire in your Ruby on Rails app
Tailwind CSS - A utility-first CSS framework for rapid UI development.
Alpine.js - A rugged, minimal framework for composing JavaScript behavior in your markup.
Grav - Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony
unocss - The instant on-demand atomic CSS engine.
astro - The web framework for content-driven websites. ⭐️ Star to support our work!
sakura - :cherry_blossom: a minimal css framework/theme.
Hugo - The world’s fastest framework for building websites.
eleventy 🕚⚡️ - A simpler site generator. Transforms a directory of templates (of varying types) into HTML.