Frontend Development Awesome

Manually curated collection of resources for frontend web developers.

You are viewing a browseable version, split by category in many small files. There is also a really huge file with every single resource on one page. Proceed to the totally gigantic file if you are into this kind of thing.

This is the current version, which receives ongoing updates. If you want the good old bookmarks, please use the tag v.1.0. Keep in mind, that the old version has many outdated links.

frontend.directory Gitter Twitter


Appearance

The outward or visible aspect of a website.

  • Animation: The process of creating motion and shape change.
  • Typography: The style, arrangement, or appearance of typeset matter.
  • Visualization: Placing data in a visual context.

Architecture

High level structure of the frontend code and the discipline of creating such structures.

  • Algorithms: A self-contained step-by-step set of operations to be performed. Algorithms perform calculation, data processing, and/or automated reasoning tasks.
  • Design Patterns: Best practices that the programmer can use to solve common problems when designing an application or system.
  • Designs: Ready to use and well documented structures and frameworks for frontend development.
  • Event-Driven Programming: Event-driven programming is a programming paradigm in which the flow of the program is determined by events such as user actions, sensor outputs, or messages from other programs/threads.
  • Functional Programming: Functional programming is a programming paradigm, that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.
  • Functional Reactive Programming (FRP): FRP is a programming paradigm for asynchronous dataflow programming using the building blocks of functional programming.

Compatibility

Ability of a product to work with different input/output devices and rendering software. Including printers, email, mobile devices and different browsers.

  • Cross Browser: Cross-browser refers to the ability of a website, web application, HTML construct or client-side script to function in environments that provide its required features and to bow out or degrade gracefully when features are absent or lacking.
  • E-Mail: Preparing HTML based electronic mail.
  • Keyboard: Working with keyboard input in a web browser.
  • Mobile: Development of websites optimized for viewing on smartphone and tablet devices.
  • Printers: Manipulation of printer output through CSS.
  • Responsive Web Design (RWD): RWD responds to the needs of the users and the devices they’re using. The layout changes based on the size and capabilities of the device.
  • Web Accessibility: Web accessibility means that people with disabilities can perceive, understand, navigate, and interact with the Web, and that they can contribute to the Web.

Ecosystem

Important developers, companies, organizations and news sources.

  • Communities Around Projects: Successful open source projects attract many developers who produce plugins, libraries, tutorials and other resources. This section collects such resources.
  • News: Websites & newsletters which provide daily and weekly news related to frontend web development.
  • Notable Community Members: Important engineers, evangelists, architects and other celebrities.
  • Organizations: Commercial companies and nonprofit organizations around web development.
  • Podcasts: A podcast is a form of digital media that consists of an episodic series of audio, video, digital radio, PDF, or ePub files subscribed to and downloaded automatically through web syndication or streamed online to a computer or mobile device.

Languages, Protocols, Browser APIs

Programming/mark-up languages and web related standards.

  • Cascading Style Sheets (CSS): CSS are a stylesheet language used to describe the presentation of a document written in HTML or XML. It describes how elements should be rendered on screen, on paper, in speech, or on other media.
  • Document Object Model (DOM): The DOM is a programming interface for HTML, XML and SVG documents. It defines methods that allow access to the tree, so that they can change the document structure, style and content.
  • HyperText Markup Language (HTML): HTML is the standard markup language used to create web pages and its elements form the building blocks of all websites.
  • Hypertext Transfer Protocol (HTTP): The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web.
  • JavaScript (EcmaScript): JavaScript is a full-fledged dynamic programming language that, when applied to an HTML document, can provide dynamic interactivity on websites. It is defined by ECMAScript standard.
  • JavaScript Object Notation (JSON): JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language.
  • Scalable Vector Graphics (SVG): An XML-based vector image format for two-dimensional graphics with support for interactivity and animation.
  • Service Workers: A method that enables applications to take advantage of persistent background processing, including hooks to enable bootstrapping of web applications while offline.
  • Templating Languages and Engines: Template engines are tools to separate program-logic and presentation into two independent parts. This makes the development of both logic and presentation easier, improves flexibility and eases modification and maintenance.
  • Transpiled Languages: Abstract languages converted to native, browser supported standards like JavaScript or CSS.
  • Uniform Resource Identifier (URI): URI is a string of characters used to identify a resource. The most common form of URI is the Uniform Resource Locator (URL).
  • Web Animations API: Web Animations is a new JavaScript API for driving animated content on the web. By unifying the animation features of SVG and CSS, Web Animations unlocks features previously only usable declaratively, and exposes powerful, high-performance animation capabilities to developers.
  • WebAssembly: WebAssembly is meant to fill a place that JavaScript has been forced to occupy up to now: a low-level code representation that can serve as a compiler target.

User Interface Components

Drop-in UI components for web sites and applications.

  • Buttons: The term button refers to any graphical control element that provides the user a simple way to trigger an event, like searching for a query at a search engine, or to interact with dialog boxes, like confirming an action.
  • Code: Code viewers and editors designed for embedding inside a website.
  • Forms: A HTML form on a web page allows a user to enter data that is sent to a server for processing. Web users fill out the forms using checkboxes, radio buttons, or text fields.
  • Galeries & Image Sliders: A sophisticated way to present a collection of images on your website.
  • Grid: CSS Grid Layout Systems.
  • Rich Text Editors: A rich text editor is the interface for editing rich text within web browsers. The aim is to reduce the effort for users trying to express their formatting directly as valid HTML markup.
  • Table Of Contents: Components for automatic table of contents generation.
  • UI Kits: Collections of ready to use components.
  • Video & Audio: Components for playing audio and video files on a website.

Workflow

Task automation and asset delivery.

  • Automated Testing: Automated software testing is a process in which software tools execute pre-scripted tests on a software application before it is released into production.
  • Build Tools: Toolkits and their ecosystems, that help you automate painful and repeated tasks.
  • CSS Tools: Tools for analysis, pre and post processing of CSS files.
  • Code Editors: Text editor programs designed specifically for editing source code of a website.
  • Documentation: Writing, generating, publishing and consuming documentation for web deliverables.
  • Fonts for Programmers: Programmers need special fonts, which help align the code and distinguish between characters, that look alike.
  • Getting Started: Step by step guides for setting up a frontend development workflow.
  • HTML Tools: Tools for pre and post processing of the HTML source code.
  • Image Post Processing: Tools for image conversion and optimization.
  • JavaScript Tools: Tools for static analysis, pre and post processing of JavaScript files.
  • Package Management: A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing reusable libraries and components in a consistent manner.
  • Sourcemaps: Sourcemap is a way to map a combined/minified file back to an unbuilt state.
  • Version Control: Version control or source control is a system that records changes to a file or set of files over time so that you can recall specific versions later.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Please provide a link back to this repository. This is not necessary for GitHub forks.