Hauss Mono

buy
Task: to create Hauss again, but this time make it mono.
Solution: Hauss Mono is a variable monospace neo-grotesque typeface. It is ideal for code or tables with numerical data, and also works great for accenting.

Hauss Mono

Hauss Mono is a close relative of the regular Hauss. The typefaces of the same family look harmonically together and allow switching from one to the other without losing the integrity of the layout.

The interchangeability has been achieved by carefully fine-tuning the balance between the recognizable features of Hauss and the traditional characteristics of monospace typefaces. The monospace version becomes recognizable thanks to its neo-grotesque character and dynamic proportions inherited from the original.

Hauss

Hauss Mono is a close relative of the regular Hauss. The typefaces of the same family look harmonically together and allow switching from one to the other without losing the integrity of the layout.

The interchangeability has been achieved by carefully fine-tuning the balance between the recognizable features of Hauss and the traditional characteristics of monospace typefaces. The monospace version becomes recognizable thanks to its neo-grotesque character and dynamic proportions inherited from the original.

  1. // Functionally, Hauss Mono is designed for writing and reading code.
  2. // High readability in small sizes is achieved by the increased height of lowercase letters
  3. // and improved legibility of similar symbols such as I,l,O,0.
  4. public async Task<IEnumerable<FileAttachmentDto>> UploadFiles(int subRequestId, List<IFormFile> files, IPrincipal user) {
  5. if (user.Identity?.Name == null)
  6. {
  7. throw new HttpAppException(401, "Unauthorized");
  8. }
  9. var subRequest = await _context.PdSubRequests.FindAsync(subRequestId);
  10. if (subRequest == null)
  11. {
  12. throw new HttpAppException(404, "Sub-request not found");
  13. }
  14. if (subRequest.Parent.Type == PdRequestType.Delete)
  15. {
  16. throw new HttpAppException(400, "Personal data request is a delete request");
  17. }
  18. // TODO restore this when state logic is done
  19. // if (subRequest.State != PdRequestState.Active)
  20. // {
  21. // throw new HttpAppException(400, "Sub-request must be in the state Active");
  22. // }
  23. var attachments = new List<FileAttachment>();
  24. var fileStorage = _configuration["FileStorage"];
  25. var idx = subRequest.FileAttachments.Count + 1;
  26. foreach (var file in files)
  27. {
  28. var name = $"{subRequest.ParentId}{subRequest.Service.Name}";
  29. if (files.Count > 1 || idx > 1)
  30. {
  31. if (idx > 1)
  32. {
  33. name += $"_{idx++}";
  34. }
  35. }
  36. name += ".csv";
  37. var path = Path.Combine(fileStorage, name);
  38. attachments.Add(new FileAttachment
  39. {
  40. OriginalName = file.FileName,
  41. Author = user.Identity?.Name!,
  42. Path = path,
  43. PdSubRequest = subRequest
  44. });
  45. await using var fStream = File.Create(path);
  46. await file.CopyToAsync(fStream);
  47. }
  48. await _context.FileAttachments.AddRangeAsync(attachments);
  49. await _context.SaveChangesAsync();
  50. return _mapper.Map<IEnumerable<FileAttachmentDto>>(attachments);
  51. }

The character set includes extended Latin and Cyrillic alphabets, Greek alphabet, mathematical symbols and currency signs.

As the size increases, the seemingly utilitarian typeface suddenly acquires a rhythmic monumentality: slogans an calls for action typed in large size with Hauss Mono sound loud and have a hypnotic effect.
Cast:

Art director

Designer

Project manager

See also