Here it is as a user script.  I couldn't find a user style extension for my browser, but I'm already running Tampermonkey.

```
// ==UserScript==
// @name StackExchange read-only mode
// @namespace https://github.com/PurpleMagick/
// @version 1.3
// @license MIT
// @author VLAZ
// @description Disables interactions such as posting or leaving any feedback on posts. Only leaves read-only features. If you browse the sites logged in, you would be able to save posts for later. Leaves flagging intact but removes close reasons. Does not disable keyboard shortcuts.
// @match https://*.stackexchange.com/*
// @match https://*.stackoverflow.com/*
// @match https://*.askubuntu.com/*
// @match https://*.superuser.com/*
// @match https://*.serverfault.com/*
// @match https://*.mathoverflow.net/*
// @match https://*.stackapps.com/*
// @grant GM_addStyle
// ==/UserScript==
GM_addStyle(`
    .js-vote-down-btn,
    .js-vote-up-btn,
    .js-edit-post,
    .js-post-notice-edit-post,
    .js-suggest-edit-post,
    #edit-tags,

    .js-add-link.comments-link,
    .js-comment-flag,
    .js-comment-up,

    #post-editor,
    #submit-button,
    a[href$='/questions/ask'],

    #review-button .s-activity-indicator,
    .review-dialog ul,
    .review-dialog h3,
    .review-dialog a[href$="/review"],
    .js-actions-sidebar,

    .bounty-link,
    #btnProtectLoggedIn,

    a[href*='/edit-tag-wiki/'],

    .js-join-community,

    .js-admin-dashboard-button,
    .js-mod-inbox-button,
    .js-mod-menu-button,
    .js-mod-message-menu,

    .js-flag-post-link,
    .js-close-question-link,
    .js-delete-post,
    #popup-flag-post ul li:not(:nth-child(1)):not(:nth-child(2)):not(:last-child),
    #popup-close-question li
    {
        display: none !important;
    }
`)
```