Skip to content
Matt BertiMatt BertiMatt BertiMatt Berti

Matt Berti

How to build an accessible navigation menu

The header navigation here on this site is built using a somewhat complex custom UI component that mimics the functionality of a native select component. Making this navigation component accessible and functional for screen readers and keyboard users posed a challenge. Keep reading →

Bite-sized history: Pitfalls in historical revision for student consumption

As history teachers, we are the generals in the vanguard. The students are on the front line. The battle is against disinformation.

Students in many countries have been taught a history that has been revised several times over, and state control of media can make it even more challenging to take a critical approach to the curriculum students have been fed their entire academic lives. There is all too often a thin line between history and propaganda, often indistinguishable for impressionable young minds. There are some things we can do to endow our young troops with the weapons to make it easier for them to make the distinction. Keep reading →

React with JSX Hooks quick setup for development

Recently I had the urge to test out some of the amazing stuff I was learning in React on some real data from a side-project. I wanted to use hooks and JSX, and I just wanted to load the React engine via <script> tags in the browser, then have the browser compile the JavaScript and JSX. This is obviously purely for development purposes, since the expense to compile is totally unsuitable for production.

To get React with hooks and JSX up quickly and easily, do the following →

Create a Conversation, Not a Presentation

John Coleman writes:

  • Active: Presentations should focus on sproblem-solving and debate
  • Prepare: Details and information should be given in advance for the audience to understand the important concepts of the presentation beforehand
  • "Punchline first": Key conclusions should be presented at the beginning with more in-depth detail given throughout the presentation

CSS Flexbox properties

I've gotten so used to using CSS hacks like positioning and floating and clearfixing over the years that it was at first hard for me to wrap my head around the magnificent simplicity of CSS Flexboxes. Here are my notes -- the properties listed and explained along with some examples that helped me understand. Keep reading →

Extend in Sass

From the Sass documentation:

There are often cases when designing a page when one class should have all the styles of another class, as well as its own specific styles. The most common way of handling this is to use both the more general class and the more specific class in the HTML. Keep reading →

Using the async module

Node.js is primed for asyncronous operations. Although there are syncronous operations available like fs.readFileSync, synchronous functions should only be used during startup, or when your module is initially loaded, and never after that. Keep reading →