Web Tools #382 - Frameworks, JSON & SQL, Vue Tools

Web Tools Weekly
WEB VERSION
Tools for Web Developers

Issue #382 • November 12, 2020

Advertisement
Hyvor Talk
Hyvor Talk is a commenting platform for websites. While systems like Disqus and Facebook Comments are built to show ads and track users, Hyvor Talk focuses on privacy, customizability, and speed. It also supports Single Sign-on to connect with external userbases.
Try Hyvor Talk
Hyvor Talk

There's an obscure tidbit in MDN's article on the focus() method that I just stumbled across. As you might know, any HTML element that's focusable (e.g. an input or any element with a tabindex value) can receive focus programmatically via JavaScript.

You simply get a reference to the element and use element.focus() to make it behave as if it was tabbed into or selected with the mouse.

But notice what MDN says:

"If you call HTMLElement.focus() from a mousedown event handler, you must call event.preventDefault() to keep the focus from leaving the HTMLElement."

It's probably rare that you would have to do this, but I'm always a sucker for these obscure little factoids when it comes to DOM/JavaScript. So I've set up a quick-and-dirty CodePen demo where you can try this out.

The first two buttons use click and mouseup, and they work fine. But the third button uses mousedown and although the code is the same, the focus doesn't take effect on the targeted input element. When preventDefault() is added, then the focus is successful:

btn.addEventListener('mousedown', function (e) {
 
input.focus();
  e.preventDefault();
}, false);

I don't know for certain why this is needed, but my best guess is that when you do a 'mouse down' action, the 'default' action that naturally follows a 'mouse down' is that the element being 'moused down' then receives focus due to the 'mouse up' action that follows.

But if that were true, that would mean holding the mouse down without mousing up should work too. But it doesn't (you can try it on the third button). So I'm really not sure. If you think you know the answer as to why this happens, feel free to let me know. Otherwise, file this one under the "rare but interesting to know" category.

Now on to this week's tools!

Front-end Frameworks

Hyvor Talk
Hyvor Talk is a commenting platform for websites. While systems like Disqus and Facebook Comments are built to show ads and track users, Hyvor Talk focuses on privacy, customizability, and speed. It also supports Single Sign-on to connect with external userbases. sponsored 

Meraki UI
Beautiful Tailwind CSS components that support RTL languages and fully responsive based on Flexbox and CSS Grid.

vue3-typescript-app-starter
A starter setup for your next Vue 3 / TypeScript app. It uses Vue 3, TypeScript, and webpack, and includes a router, code splitting and tree shaking, and lots more.

Clarity Design System
Now at version 4+. A toolset that includes UX guidelines, HTML/CSS framework, and Angular components.

Oruga
A lightweight library of UI components for Vue without CSS framework dependency.

Wicked Templates
Tailwind CSS templates ready to customize out of the box. Helps you jumpstart your startup's landing page by providing you with easy to customize templates.

React Redux Boilerplate
Opinionated React starter boilerplate + authentication, with using Redux, React Router Dom, Redux Thunk, Axios, and more.

starter-express
A starter project for using Remix  (the serverless toolkit) with Express.

Resium
A library of React components for Cesium, the JavaScript library for creating world-class 3D globes and maps.

Resium

Layr
A set of JavaScript/TypeScript libraries to dramatically simplify the development of full-stack applications.

visx
A collection of expressive, low-level visualization primitives that brings together the power of D3.js with the joy of React.

Semantic UI React
Now at version 2+.  The official Semantic UI-React integration.
 

JSON Tools, Databases, etc.

Learn Gatsby, React.js, and friends - $97
A brand new course from Wes Bos that includes 52 HD videos to learn to build and style websites with Gatsby, the popular React-based framework and toolset.   promoted

sql.js
A JavaScript SQL database that allows you to create a relational database and query it entirely in the browser.

Sir.DB
A simple database on the file system. JSON files organized into sub-directories for each table.

NoisePage
A relational database management system (DBMS) designed from the ground up for autonomous deployment.

Sqlectron
A simple and lightweight SQL client desktop/terminal with cross database and platform support.

NestedText
A human-friendly data format for holding data to be entered, edited, or viewed by people. Allows data to be organized similar to JSON, YAML and TOML, but without the complexity and clutter.

TS-SQL
A SQL database implemented purely in TypeScript type annotations, which means that it operates solely on types –  you define a "database" (just a type annotation) and then query it using more type annotations.

Hasura
Now at version 1+. Instant GraphQL APIs with built-in authorization for your data.

Hasura

DuckDB
An embeddable SQL OLAP database management system.

Object Visualizer
A configurable JSON inspector.

graphqurl
curl for GraphQL with autocomplete, subscriptions, and GraphiQL. Also a dead-simple universal GraphQL client.

Castodia
Connect Google Sheets to databases and automate reports.

Vue Tools

direct-vuex
Use and implement your Vuex store with TypeScript types. Compatible with the Vue 3 Composition API.

reactivue
Use the Vue Composition API in React components.

v-dollar
jQuery-like Vue Reactivity API , that's well-typed.

VueUse
A collection of essential Vue Composition API utilities (inspired by react-use) for Vue 2 and 3.

when
Promised one-time watch for @vue/reactivity.

vue-concurrency
A library for encapsulating asynchronous operations and managing concurrency for Vue and Composition API.

Vue 3 Playground
A learning project/playground packed with all the new features in the latest version of Vue.
 
Vue 3 Playground

vue-disqus
Vue component to integrate Disqus comments in your application, with support for SPA and Vue 2.

vue-social-chat
A component for your visitors and customers to send messages directly to you through social chats or a customized form.

Vue Class Store
Universal Vue stores you write once and use anywhere.

vue-calc
Calculator-like functionality for Vue. Seems to be more of a demo than a code snippet you can use, but you should be able to easily grab the code.

vue-lit
Proof of concept mini custom elements framework powered by @vue/reactivity and lit-html.
 

A Tweet for Thought

Grace Marsh explains how she uses BrailleNote, a tablet/notetaker for blind users.

A Tweet for Thought
 

Send Me Your Tools!

Made something? Send links via Direct Message on 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...

libyear is a project attempting to get people in software development to measure software dependency freshness by means of a single number telling you how up-to-date your dependencies are – thus, "my project is 55 libyears behind."

Thanks to everyone for subscribing and reading!

Keep tooling,
Louis
webtoolsweekly.com
@WebToolsWeekly
PayPal.me/WebToolsWeekly

Older messages

Web Tools #381 - JS Promises, React Tools, SVG, Git/CLI

Thursday, November 5, 2020

Web Tools Weekly WEB VERSION Issue #381 • November 5, 2020 Advertisement Cubbit for Teams Cubbit for Teams is the first cloud storage for businesses not running on data centers but on a distributed

Web Tools #380 - Testing Tools, JS Libraries, Misc. Tools

Thursday, October 29, 2020

Web Tools Weekly WEB VERSION Issue #380 • October 29, 2020 Advertisement Cut Your IT Bills in Half No surprise invoices, no lock-in, and same price across 11 global data centers. Industry-leading price

Web Tools #379 - CodeLobster IDE, CSS Tools, Build Tools, Git/CLI

Thursday, October 22, 2020

Web Tools Weekly WEB VERSION Issue #379 • October 22, 2020 The following intro is a paid product review for CodeLobster, a free cross-platform IDE for PHP, HTML, CSS, and JS development. There's no

Web Tools #378 - JS Utilities, Media/SVG, Databases

Monday, October 19, 2020

Web Tools Weekly WEB VERSION Issue #378 • October 15, 2020 The only thing I'll mention in this week's intro is a thought-provoking article published three years ago: How I rediscovered my love

Web Tools #377 - VS Code, SVG, Media Tools, Uncats

Thursday, October 8, 2020

Web Tools Weekly WEB VERSION Issue #377 • October 8, 2020 As with many things in coding, there's probably lots of ways to do this, but here's a way to remove all 'falsy' values from a

You Might Also Like

This Week's Daily Tip Roundup

Sunday, May 19, 2024

Missed some of this week's tips? No problem. We've compiled all of them here in one convenient place for you to enjoy. Happy learning! iPhoneLife Logo View In Browser Your Tip of the Day is

Reading Beyond the Hype: Some Observations About OpenAI and Google’s Announcements

Sunday, May 19, 2024

Google vs. OpenAI is shaping up as one of the biggest rivarly of the generative AI era. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Final Reminder: Apple Issues "Update Now Warning"

Sunday, May 19, 2024

I wanted to send a final reminder — if you haven't already updated your iPhone to iOS 17.5, we strongly recommend you do so today. This is also your last chance to get access to our iOS 17.5 In-

Second Brain/Attention/Find Your Books

Sunday, May 19, 2024

Recomendo - issue #411 ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Kotlin Weekly #407

Sunday, May 19, 2024

ISSUE #407 19th of May 2024 Hello Kotliners! The Google I/O just finished this week with a huge announcement for us, with Google supporting now Kotlin Multiplatform on Android, and the KotlinConf will

Learn How to Use AI to Reach Your Full Potential, newsletterest1!

Sunday, May 19, 2024

3 Ways AI Can Help Your Writing ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌ ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌ ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌ ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌  ͏ ‌

Software Testing Weekly - Issue 220

Saturday, May 18, 2024

Software Testing Conferences 📚 View on the Web Archives ISSUE 220 May 18th 2024 COMMENT Welcome to the 220th issue! Have you ever been to a testing conference? They're a great way to learn about

📶 Is a Cellular iPad Worth It? — How to Prevent YouTube From Taking Over Your Screensaver

Saturday, May 18, 2024

Also: This Robot Vacuum Can Clean Stairs, and More! How-To Geek Logo May 18, 2024 📩 Get expert reviews, the hottest deals, how-to's, breaking news, and more delivered directly to your inbox by

Weekend Reading — Objection-oriented programming

Saturday, May 18, 2024

This week we find a power-up box, replace GitHub Actions with Maven XMLs, avoid the worst website in the world, revisit RTO policies, “listen” to OpenAI employees, watch our Slack private messages, do

Daily Coding Problem: Problem #1445 [Easy]

Saturday, May 18, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Jane Street. The United States uses the imperial system of weights and measures, which