I am probably better at making video games for a living but I love web dev.
Developing this whole website for fun, aiming at making it compliant with web accessibility standards, responsive and mobile friendly, google amp compliant, service-worker compliant and very performant (means green scoring in all google tests), using no high level framework (coders like to code) except my own server-side php html components library (work in progres)!
Tools
A few web tools I am working on
APCA Contrasted colors checker
Check if you text is contrasted enough, depending on color, background color, font size and font weight
Also suggests a few diffent valid colors to use instead
Find the tool here!
CSS Ipsum
A CSS sandbox / showcase
This is a fake/test page meant to test CSS frameworks and styles.
It aggregates several showcase pages (some well known, others that come from the past) presenting all html components into one single page where you can
Toggle preset CSS frameworks (normalize & co)
Add a link to an external stylesheet
Edit existing CSS
Switch between dark and light modes
Also note that ALL CSS of this page can be live edited to see what happens!
Experiment here!
Masonry layout
My take at applying a masonry style to your existing layout.
So let say you have a collection of components. First, if not already done,
apply a grid pattern to it (just setting grid display, gap, and columns template). Then
simply apply this tiny javascript function to your component parent,
and done!
I did a codepen to showcase it: https://codepen.io/villepreux/pen/XWmoOrG
DOM Framework
DOM.PHP
Web **Do**cument PHP **M**arkup & components framework
https://github.com/villepreux/dom
https://villepreux.github.io/dom
Status
Proof Of Concept
Intentions
Goals
Writing web documents/pages quickly.
Using HTML known markup syntax.
Mainly semanticaly
Without having to worry about latest, state of the art, boilerplate code
Automaticaly generating derived content (jsonfeed, RSS, sitemap, favicons, service worker...)
Independently of chooosen component/styling/whatever framework (normalize vs sanitize vs reset, material vs bootstrap vs spectre vs..., react vs 11ty vs..., AMP or not,...)
Having access to comonly used predefined components (videos, social-media cards, maps, ...)
Being able to create and/or compose new components with ease
Compiling into fast code
Compiling into valid markup (HTML, CSS, JSON, AMP...)
Compiling into good SEO
Rendering well without CSS nor JS
Not needed JS at all if wanted or when disabled
Using a single language for everything (templating, css-preprocessing, ...)
While still allowing to inject HTML/CSS/JS anywhere at will
How-to
Use PHP (Deployed everywhere. Easy to learn. Known by many. Capable of generating anything. Modern language in its latest incarnations)
Declarative programming
State of the art defaults
Assumes evergreen browsers
Getting started
Why not start with examples?
The standard [Hello World](../dom/examples/hello-world/) one first, then more complete [examples](../dom/examples).
Known issues
Codebase: It's a proof of concept at this stage. So need to be rewritten. Currently has very long line lengths & extrem single-line functions use: Hard to read.
~~Codebase: Naming conventions: Missing lot of lib prefixes~~ => Now having its namespace
Features: Social networks content scrapping: Broken in many cases => TODO : kill feature or go the API way
Too much default CSS => Needs cleanup while keeping out of the box nice and complete "hello world" or mardown based websites
TODO List
Codebase: Refactoring: WIP: Prefix everything + provide unprefixed facade for components markup
Add options for CSS automatic classes naming conventions
Reduce boilerplate CSS size
Add option for CSS classes prefixing
Optimize server-side performances
Where possible, use sub-components aggregation instead of multiple parameters
Convert default parameters to "auto" parameters where appropriate
Where possible, use named, unordered & optional parameters => Upgrade to php 8 to use native named parameters?
Use heredoc syntax where possible
~~Remove jquery internal usage~~ DONE
Document the code
Remove framework bindings for framework that are no more on top of the frameworks leaderboards
Design a new framework binding mechanism (would markup + classes bindings & transformations be enough?)
DOM is provided for free (like free beer). Use at your own risk
This site
I love my website!
I love my website! Digital garden is the right description
That includes all my webdev experiements. This is this website features' list:
Uses DOM homemade framework (See this page source code below to see how it looks like)
Web-mentions support
Commenting (via mastodon) support
'Level 3' IndieWeb'ified
RelMeAuth support
JSON-RPC is automatically generated
RSS is automatically generated
Dark mode support with toogle button (in the footer)
No-JS support (with toogle in the footer to test it)
No-CSS support (with toogle in the footer to test it)
Misc. tests
CSS Ipsum Test page
Hello world!
Vanilla test page
Style Stage CSS Theme contribution
Some more tests
Source code of this web page
Mastodon comments
Comment on this blog post by publicly replying to this Mastodon post using a Mastodon or other ActivityPub/Fediverse account. Known non-private replies are displayed below.
No known comments, yet. Reply to this Mastodon post to add your own!
Loading comments relies on JavaScript. Try enabling JavaScript and reloading, or visit the original post on Mastodon.
Web mentions
These are webmentions via the IndieWeb and webmention.io
No known mention, yet
Loading web mentions relies on JavaScript. Try enabling JavaScript and reloading.