Issue #116 (String property access, CSS Tools, JS Utils, Testing)
Here's a ridiculously simple tip using strings that was introduced in ES5. You likely know that you can access individual items of an array using square brackets. For example:
var myArray = ['item0', 'item1', 'item2', 'item3'];
console.log(myArray); // "item2"
That's simple enough. But what about treating a string like an array-like object, where the string's characters are different "items"? You could use the charAt() method:
var myString = "example string";
console.log(myString.charAt(3)); // "m"
But you can also accomplish the same thing using square brackets directly on a string:
console.log("my example string"); // "p"
Just like in an array, the square brackets indicate the position of the character you want.
But there's limited use for this. MDN says: "For character access using bracket notation, attempting to delete or assign a value to these properties will not succeed. The properties involved are neither writable nor configurable." This technique is supported in IE8+, so it's safe to use if you think it's useful.
Now on to this week's tools!
CSS and HTML Tools
HTML Server Components Compiler
"A new concept for building HTML documents that are full of different components (fancy galleries, social share buttons, 3rd party comment boxes and so on)."
Light Bootstrap Dashboard
"An admin dashboard template designed to be beautiful and simple. It is built on top of Bootstrap 3 and it is fully responsive."
A list filter plugin that utilizes native CSS rules.
"A modular minifier, composed of single-responsibility PostCSS plugins."
"A tool that automatically formats CSS source code, inspired by Gofmt, and built on top of the PostCSS ecosystem."
"A CSS file in which all class names and animation names are scoped locally by default."
"A professional web animation tool for everyone."
"An extremely lightweight suite of CSS layout utilities based on modular scales and inspired by the Unix Philosophy."
"A configurable and animated radial menu. BloomingMenu is a port of AwesomeMenu for the web."
"A CSS transpiler that allows you to use the latest CSS syntax today. It transforms new CSS specs into more compatible CSS so you don't need to wait for browser support."
"Light and clean tooltips with smooth 3D animation. No framework required."
A flexible, mobile-first, CSS animation-based, 4kb slider/carousel.
Angular UI Grid
"A data grid for AngularJS; part of the AngularUI suite."
"Will rotate through a series of sentences, transitioning between each one."
"A simple Tinder-like card animation and voting system."
A React-based set of UI components, based on the Matter UI kit.
"A very lightweight notifications utility. The minified code comes in at about 1KB, there are zero external dependencies, and everything is completely customisable."
"Flexible script for loading images only when they’re about to enter the viewport of a scrollable area, which supports the srcset attribute."
"A modern approach to copy text to clipboard. No Flash. No dependencies. Just 2kb."
"Drag and Drop library for React."
"Because you want the $ of jQuery without the jQuery."
Testing and Debugging Tools
"Live interactive cross-browser testing."
"Warns about potential accessibility issues with your React elements."
"Hackable HTTP proxy to simulate server failure scenarios and network conditions."
IE Virtual Machines
"Test Microsoft Edge and versions of IE6 through IE11 using free virtual machines you download and manage locally."
"A tool to easily gather feedback, bugs and change requests for your web project, enriched with one-click screenshots and deep technical info, complete history and real-time comments."
"Check your browser details or create your own customized checker for your clients."
A Tweet for Thought
Anil Dash put together a sort of Twitter essay on ad blocking. Interesting read and subsequent discussions.
Suggestions / Corrections
Made something? Send links via Twitter @WebToolsWeekly (details here). No tutorials or articles, please. If you have any suggestions for improvement or corrections, feel free to reply to this email.
Before I Go...
Here's a neat demo: RubiCSS cube.
Thanks to all for subscribing and reading!