Jump to content

NZyan

Clients
  • Posts

    129
  • Joined

  • Last visited

Reputation Activity

  1. Like
    NZyan reacted to Ehren for a blog entry, Invision Community 5: A more performant, polished UI   
    As showcased in our past blogs, Invision Community 5 introduces a brand new, modern interface which brings improvements to performance, aesthetics and mobile usability.
    An optional side navigation panel, new view modes, light/dark modes, customizable header layouts, a search modal and a mobile navigation bar are some of the things we've showcased previously. Today, lets take a closer look at some other miscellaneous changes that we've been working on while developing Version 5, including some of the code reductions and performance improvements that we've been able to achieve in the process.
    For those of you who are developers, we'll also give some simple explanations of how (and why) we've implemented these changes.
     
    Widgets
    Sidebar widgets are perfect for displaying content feeds, featured members, announcements, advertisements and more on your page. In version 4 however, the widget column would often become an empty space once the widgets had been scrolled past:
      widgets-v4.mp4  
    In version 5, widgets now stick to the screen once the last widget has been reached, ensuring your readers have more convenient  access to your widgets rather than a void space:
      sticky-widgets-v5.mp4  
     
    Messenger
    The Messenger is a great way to reach out to members when a private chat is more appropriate than a topic. Inspired by modern email clients, the messenger in Version 5 has been revamped with a full-height, sticky inbox, a longer message snippet, mini profiles and a more polished UI - all with a 25% reduction in CSS and a 100% reduction in Javascript.
    messenger-v5.mp4
     
    Sticky elements
    We've mentioned sticky elements a couple of times now, so lets take a look behind the scenes at how they're created, and some of the performance improvements with Version 5. Traditionally, sticky elements were created using Javascript which would calculate the position of the element on the page and adjust it's stickiness every time the page was scrolled. Scroll events can be quite taxing for browsers, and when it comes to Javascript, the less, the better (especially when aiming for great page speed scores)!
    With that in mind, all sticky elements are now handled using sticky positioning via CSS, which is a native and much more performant way of controlling these elements. We've been able to replace an entire 400 line Javascript component with just 3 lines of CSS.
     
    Grids and Masonry
    Grids have previously been handled in a similar fashion. Javascript would scan all elements within a grid to determine how many could fit on a single line, and would then shuffle these elements into position after the page was loaded or resized. CSS has since introduced its own grid properties, which has allowed us to replace more than 350 lines of Javascript with just a few lines of CSS, resulting in more performant page rendering and nicer looking grids (especially on small-medium displays such as mobiles and tablets).
     

     
    Fun fact: We first introduced a similar performance improvement to "masonry grids" in our Gallery update from January this year, by replacing more than 400 lines of Javascript with, you guessed it, just a few lines of CSS.
     

     
     
     
    Click targets
    We wanted to make Version 5 as simple as possible to navigate, and one way of doing that has been by implementing larger click targets. Clicking anywhere inside an entry in a table or grid will now take you to that entry (you can still click on other links like normal within the click target, such as subforums or profile links). Click targets are optional and can be disabled via your theme settings if necessary.
     
    click-targets.mp4
     
    Data Lists (tables)
    Speaking of tables, they too have been revamped. Tables automatically adapt to the space they've been assigned to (for those curious, this is done using CSS container-queries), so they're always neat regardless of the screen size, with no overflow or squashed layouts. Behind the scenes, the two columns below are created with identical code, yet they're quite different visually due to the size which they've been allocated. Even with these improvements, tables have received a 25% reduction in CSS.
     

     
    Profiles
    Profiles have been polished for Version 5 and include some nice improvements such as sticky widgets and tabs. 
    profile-desktop.mp4
     
    On mobiles, the side column collapses into a carousel, and the sticky tabs allow you to easily flick between content types without scrolling to the top of the page.
    profile-mobile.mp4
     

    Tabs
    You may have noticed in the above clip that tabs on mobiles are now scrollable, compared to a dropdown menu from version 4. We made this change to ensure that tabs are given more equal exposure on small devices, and have managed to reduce the CSS by a whopping 80%.
     
    Carousels
    Last and certainly not least, are carousels. Carousels are great for displaying large amounts of data in a confined space and they've been rewritten from scratch for version 5. Previously, a Javascript library was used to create the "scroll effect", however this has never been the smoothest experience on laptop trackpads and touch devices.
    In version 5, carousels are powered by native smooth-scrolling and scroll-snapping, which results in a much nicer user experience, especially on touchscreens. We've been able to remove a staggering 95% of the Javascript, substituting it with just a few lines of CSS.
     
    carousel.mp4
     
    To be honest, we've only just scratched the surface here! In addition to these changes, we've modernized (and reduced code) in almost every component throughout the suite including avatars, cover photos, dropdown menus, forms, inputs, buttons, lists, off-canvas menus, side menus, columns and more!
    Combined, these changes result in not only a significant reduction in code, but also a polished UI that performs smoothly on desktop and touch devices. We're excited to continue modernizing Invision Community well into the future as new technologies and techniques become available to us, and are looking forward to getting it in your hands in 2024.
  2. Like
    NZyan reacted to Matt for a blog entry, Invision Community 5: Finding community experts   
    Long ago, back in the dark ages, forums used the number of posts a member made and how long ago they joined to demonstrate trust and experience.
    Is simply posting a lot and being a member for a long time the best way to know which community members are experts?
    And is there a better way?
    We think so.
     
     
    What makes an expert, and why are they important?
    Community experts are the keystones to any thriving community. You probably recognise a handful in your community. They tend to be active regularly, are often the first to try and help others with their questions and help set a positive example within the community.
    Wouldn't it be great if newer community members could discover who these super users were a little easier? These members trying to find their feet in a new community could follow trustworthy individuals, absorb the positive tone of the community, and even get help a little quicker.
    In the past, forums have shown trust and experience through basic metrics like post count and the years since they joined. However, these metrics only show that the individual has been around a long time and posts a lot. It doesn't show that they are potential role models or helpful and trustworthy.
    Community Experts with Invision Community 5
    Invision Community 5 identifies these experts through metrics such as the number of solutions they have, the volume of 'helpful' votes on their replies, the speed of answers and more.
    Each forum will have its own experts, so if you have a very broad community, someone who is very helpful in a particular area will show as an expert in that area only.
    When a member has been picked as an expert, they'll receive an email thanking them, and they can then opt-in to be shown as an expert along with a regular notification or email with any unanswered questions in forums they are experts in.

    I'm absolutely killing it in the Test Forum
    Every few months, the experts are recalculated to reflect the organic way communities grow and change. After all, there's little point in showing that a non-active member is an expert. It might even encourage new community experts to keep up the great work and remain active longer.

    Community experts have a badge shown with their posts, along with the option to follow them. Encouraging new members to follow trusted community members should be a core part of any community strategy.
    Settings and control
    Of course, not everyone should be labelled as a community expert, and perhaps, in very rare circumstances, an existing community expert could have a bad day and not represent the community well.
    Invision Community 5 gives you the ability to set which groups experts can be picked from and offers you the opportunity to block existing experts, ensuring they won't be selected again in the future.

    Over to you
    All communities have to be purposeful and provide value. That value may be in close friendships, or it may be in getting answers for problems you have. Either way, locating the most helpful members will help develop trust, provide guidance and increase knowledge within your community.
    For transactional communities such as support-based communities, experts are vital in providing timely answers and demonstrating credibility and expertise to others.
    As always, we'd love to hear your thoughts. Please let us know in the comments.
     
  3. Like
    NZyan reacted to Ehren for a blog entry, Invision Community 5: Dark mode, accessibility, performance and mobiles!   
    Welcome to the second video of our sneak peak series! Today we'll be taking a closer look at the new Invision Community interface, including dark mode, accessibility improvements, performance improvements and the mobile layout! Before we begin, I should mention that this is a pre-alpha version of Invision Community 5, so some areas of the design may change before the official release.
     
    New traditional header design
    In our previous video, we showcased our new, optional side panel which formats your navigation into a vertical list. For those who prefer a traditional, horizontal header, here it is!

    A much more compact header compared to version 4, the new design condenses the navigation bar into a single row, moving all sub-navigation items into dropdown menus. A new, optional area below the text logo allows you to add your website slogan or announce events such as anniversaries or holidays, and our new search modal provides convenient access to the advanced search filters from any page on your community.

     
    Accessible interface
    The main content area has been designed with accessibility as a priority. High contrast text colours and larger font-sizes help to make reading more comfortable and clickable table rows (which can be enabled or disabled via the Theme Editor) allow you to navigate between pages more easily. A visible focus ring significantly improves navigation for visitors who find it more comfortable to browse with their keyboard TAB key, instead of using their mouse (ie. visitors with conditions such as Parkinson's disease, or those who have temporarily lost function due to a broken arm).
     
    Focus.mp4
    Elements are highlighted while navigating with the keyboard
     
    Dark mode
    Dark mode has become increasingly popular over the past few years - so it's no surprise that Version 5 has been designed from scratch with both light and dark mode in mind. With version 4, it was necessary to manage two themes in order to provide a light and dark colour scheme. In version 5 though, all of that is handled by a single theme.
    By default, your members will be able to choose their own color scheme preference: either light, dark, or system. System assigns a color scheme based on your system preferences - so if your device automatically switches to dark mode at night, your community will too! With that said, as an administrator, you also have the option to restrict your site to a single color scheme - so if you ONLY want to offer a dark theme, that's easily achieved.

     
     
    Performance
    Despite all of these new inclusions, the version 5 UI has been coded with significant reductions in both CSS and Javascript. We'll dive deeper into code reductions in a future blog entry, however two great examples are:
    - Grids: which have had a 100% removal of Javascript and are powered by only a few lines of CSS, resulting in a faster rendering time, especially for users on slow connections.
    - And carousels: which have had a 95% reduction in Javascript and now rely on native browser scrolling, for a much smoother experience on both desktop and mobile!
    Additionally we've removed a number of helper libraries that are no longer needed with modern browsers saving even more.
     
    Mobile UI
    With an incredible amount of mobile visitors accessing the web, we’ve placed a huge priority on redesigning the interface to ensure it lives up to todays standards.
    A new navigation bar at the bottom of the page provides convenient access to your activity feed, notifications, messages, a search panel, and navigation links. A conscious effort was made to ensure that this information was available within a single tap, and we found that a bottom bar like this was easier to interact with compared to icons in the header.

    The mobile navigation bar from Invision Community 5
     
    A goal of the mobile UI was to display elements that were previously only available on larger devices, while still maintaining a clean interface. For example, to improve navigation, we've added a scrollable breadcrumb list to the top and bottom of the page. To improve guest participation, we added Sign In and Sign Up links to the bottom navigation bar. These links were previously hidden within the hamburger menu, so we feel like this will really benefit those looking to improve registrations. And as demonstrated in last weeks video, profile information is now available within posts, comments and reviews on small devices.
    We’re really excited for you to literally have a hands on experience with the new mobile interface of Invision Community 5, and we're interested to hear your feedback in the comments!
  4. Like
    NZyan reacted to Andy Millne for a blog entry, Gallery, Events & Clubs: Improvements From Your Feedback   
    You may have noticed many of the Invision Community apps getting updates recently. Over the last several months we have revealed revamped Events, Gallery and Downloads apps and have listened to how you have been using them.
    As a result, we are including some further app refinements as a direct result of that feedback.
    Gallery
    Many of you asked for more customisation options with the new overview page so 🎉 it is now possible to hide and show different sections of the overview using simple toggle settings without the need for theme edits. You can also adjust the number of items that show.

    Searching for existing Gallery images to include in topics has been a feature of Invision Community for a while but previously search has been limited to the image name. Now, when searching for images via the "Insert other attachment" editor option, searching by album name returns images from that album.
    Gallerysearch.mp4
    Events
    We added a similar improved overview to Events in the October release but for those of you with multiple Calendars you wanted a quicker way to subscribe to all events.
    It is now possible to subscribe to all events from a prominent button in the header of the overview page. Members can subscribe to an iCal feed or download an export in just a couple of clicks.
     
    Clubs
    We also decided to use this release to add a couple of updates to clubs.
    The popular “Mark solved” functionality is now available directly in your clubs with control over who can mark the item solved. You can allow the topic author to mark questions as solved or leave it to moderators only.
    …and last but not least we added a contextual search tweak so that when members are viewing a club, the search filter defaults to “This Club”

    We hope these small but useful improvements are popular in your communities and we look forward to hearing more of your feedback and requests.
    Is there anything we missed? Let us know in the comments.
    The features discussed in this announcement are available in both Invision Community and Invision Community Classic.
  5. Like
    NZyan reacted to Matt for a blog entry, 4.5: User Interface Improvements   
    Invision Community has certainly changed a lot over the years as we've moved through major updates and large user interface changes. 
    While large scale changes offer a dramatic difference, it is sometimes the smaller changes that bring the most satisfaction when using your community daily.
    This blog entry rounds up some of the UI improvements Invision Community 4.5 brings.
    Content View Behavior
    What do you want to happen when you click a topic link? Are you taken to the first comment, the last comment or the first comment you've not read? If you speak to 100 people, I'm pretty sure you'll get a good spread of votes for each.
    Invision Community has always offered subtle ways to get right to the first unread comment. Our infamous dot or star allows you to do this, but it is so subtle almost no one knows this.
    Invision Community 4.5 now allows each member to choose (with the AdminCP offering a default).

    Now everyone wins!
    Who Reacted?
    Invision Community has had reactions for a long while now. Although finding out who exactly reacted without clicking the counts has proved irksome.
    We've fixed that in Invision Community so simply mousing over the reaction icon reveals who reacted.

    Sign In Anonymously
    For as long as I can remember, Invision Community has offered an option to sign in anonymously via a checkbox on the login form.
    However, as we've added faster ways to log in via Facebook, Twitter, Google and more it's become less straight forward to ensure your anonymity.
    Invision Community 4.5 removes this login preference and moves it to your members' settings.

    Now your members can resume hiding as they move around your community across multiple logins.
    Resize Before Uploading
    One of the most popular requests we've had in recent times is to resize large images before uploading. It's quite likely that your giant full resolution image will be denied when attempting to upload, and it's a bit of a faff to resize it in a photo editor.
    Invision Community leverages the uploader's ability to resize before uploading, which makes it a much happier experience.
    Switch Off Automatic Language Detection
    Invision Community attempts to map your browser's user-agent to a specific language pack.
    When you visit a site, your browser lets the site know which language our browser is set to (often dictated by your operating system) and we use that to show you the correct language if the community you're visiting has multiple languages installed.
    However, it might be that you don't want this to happen because although your computer's OS is set to a specific language, it doesn't always follow that is the one you wish to use on a website.
    Invision Community 4.5 allows this automatic detection to be switched off.

    Quote Collapse
    We will finish with another popular feature request; the ability for long quotes to be collapsed, reducing the amount of scrolling one has to do.
    Quite simply, Invision Community collapses long quotes with an option to expand them to read the entire quote.

    Thank you to all our customers who have taken the time to leave feedback. As you can see, we do listen and action your feedback.
    Which change are you looking forward to the most? Let us know below!
  6. Like
    NZyan reacted to bfarber for a blog entry, 4.5: Search Insights   
    Every single day, your members are searching your community for answers or interesting conversations to join.
    Wouldn't it be great if you could learn what is being searched for to identify hot issues, commonly asked questions and discover trends?
    We thought so too, which is why Invision Community 4.5 comes with search statistics.
    For the first time, Invision Community gathers anonymized information on what your members are searching for so you can use this to highlight more relevant content and shape strategic decisions with your community's structure.

    Search statistics help you track searches performed on your community
    When a member searches, their identity is converted into a unique key that cannot be reversed to identify the member. This allows us to track a single member's search usage over many search sessions without being able to link it to a specific member account.
    The AdminCP now features a dashboard to review the most popular search terms as well as a raw log of recent searches along with the results they returned.
    We have a lot of ideas in mind for additional changes down the road with the tracking of popular search terms, but for now, we hope you like the new statistics page and find the information presented useful for your future site plans.
  7. Like
    NZyan reacted to Matt for a blog entry, CrossFit suspends Facebook and Instagram accounts   
    A month ago, CrossFit, Inc. posted a scathing blog entry outlining why they made the decision to quit Facebook and Instagram.
    I first came across CrossFit back in early 2007 when I was looking for new ways to improve my fitness. Their fitness programming was a breath of fresh air. Most workouts were based around either long cardio workouts such as running or traditional gym workouts with weights and machines.
    CrossFit successfully combined the two into a short intense workout which gained popularity very quickly.
    I was a fan immediately and followed the WODs (workout of the day) as closely as possible and watched the early CrossFit stars emerge.
    CrossFit, Inc. is very strong-minded. Their press release cites several reasons for their abandonment of the Facebook platform.
    They also expand on this and believe that "Facebook collaborates with government security agencies on massive citizen surveillance programs such as PRISM", "Facebook, as a matter of business and principle, has weak intellectual property protections and is slow to close down IP theft accounts." and "Facebook has poor security protocols and has been subject to the largest security breaches of user data in history."
    It's certainly a bold move.
    CrossFit does have a legacy forum system which dates back from its early days which gets some use still.
    I think that investing in that community platform through modernisation along with a solid community building strategy could pay dividends in them taking back control of their conversation without fear of falling foul of any heavy-handed moderation beyond their control.
    Modern community platforms like ours have plenty of tools to automate basic moderation, encourage more engagement and work well on mobile devices.
    CrossFit, Inc join Lush Cosmetics as high profile brands that have taken themselves off Facebook completely.
    Do you think we'll see a resurgence of owned-communities?
  8. Thanks
    NZyan reacted to Matt for a blog entry, 4.4: Turbo charging loading speeds   
    It might seem a little odd starting a blog on increasing Invision Community's speed with the word "lazy",  but I'll explain why this is a good word for performance shortly.
    Earlier this year, Google announced that page speed is a ranking factor.
    Simply put, if your site is slow, it will be ranked lower in Google's search results.
    It is always a challenge making a large application like Invision Community as efficient as possible per page load. A single Invision Community page can pull in widgets from multiple applications as well as a lot of user-generated content with attachments, movies and images used heavily. 
    This is where being lazy helps.
    Lazy loading is a method by which attachments, embeds and images are not loaded by default. They are only loaded when the viewer scrolls down enough to make them visible.
    This allows the page to load a good deal faster now it doesn't have to load megabytes of images before the page is shown as completely rendered.
    I was going to take a fancy video showing it in action, but it's hard to capture as the system loads the media just before you get to it, so it looks fairly seamless, even with sluggish connections.

    Not the most dynamic image, but this shows the placeholder retains the size of the image
    In addition to image attachments, we have also added this lazy loading to maps and Twitter emoji images.
    Improving non-image attachments
    Once we had implemented the lazy loading framework, an area we wanted to improve was non-image attachments.
    We have listened to a lot of the feedback we had on this area, and have now made it very clear when you add an attachment into a post. We've even returned the download count now it's being loaded on demand.

    Using attachments when posting
    All the letters
    When we first implemented the letter avatars in 4.3, we discussed whether to use CSS styling or use an image.
    We decided to go with an image as it was more stable over lots of different devices, including email.
    We've revisited this in 4.4, and switched the letter avatars to SVG, which are much faster to render now that the browser doesn't have to load the image files.
    Other performance improvements
    We've taken a pass at most areas with an eye for performance, here is a list of the most significant items we've improved.
    Several converter background tasks have been improved, so they work on less data Duplicate query for fetching clubs was removed in streams Notifications / follower management has been improved Member searches have been sped up (API, ACP live search, member list in ACP, mentions, etc.). Stream performance has been improved UTF8 conversions have been sped up Elasticsearch has been sped up by using pre-compiled queries and parameterisation, as well as the removal of view filtering (and tracking) HTTP/2 support with prefetch/preload has been added Several PHP-level performance improvements have been made Implemented rel=noopener when links open a new window (which improves browser memory management) Several other performance improvements for conversions were implemented that drastically reduce conversion time IP address lookups now fetch IP address details from us en-masse instead of one request per address Cache/data store management has been streamlined and centralised for efficiency Many background tasks and the profile sync functionality have all been improved for performance Brotli compression is now supported automatically if the server supports it Redis encryption can now be disabled if desired, which improves performance Phew, as you can see, we've spent a while tinkering under the hood too.
    We'd love to hear your thoughts. Let us know below!
    This blog is part of our series introducing new features for Invision Community 4.4.
  9. Like
    NZyan reacted to Rikki for a blog entry, Theme Tip: Advanced uses for Pages database fields   
    Our Pages app includes a powerful feature that allows you to create your own databases within the community. Within each database, you create custom fields (we support a number of custom types, from plain text fields, to YouTube embeds and more). And while we provide some generic, simple templates to display your data, custom templates allow you to more precisely control how your database looks in a manner best suited to your site.
    Anyone who has created a Pages database will be familiar with using custom fields. You may have created a field for the title of your item, or an upload field so that the item contains a file for users to download. But beyond these straightforward uses, I wanted to explore some more advanced uses of custom fields. Fields don't necessarily have to be displayed to the user - or at least not in the usual way. We can use them as configuration options for our record display, or manipulate the data in order to show it in a different way. Let's take a look at some examples.
     
    1. Adding an optional badge to records
    We'll start with a fairly simple example. In our Guides section, we highlight guides that have a video tutorial by showing an 'Includes Video Guide' label on the listing:

    We achieve this simply by having a Yes/No field that we turn on as needed. In the field format, we turn the Yes/No value into the label by setting the format to Custom and using this code:
    {{if $formValue == 1}} <span class='ipsType_medium'><i class='fa fa-video-camera'></i> <strong>Includes Video Guide</strong></span> {{endif}}  
    2. Using fields as a way to configure the record display
    Fields don't necessarily need to be shown to users. Instead, we can use them as a means to configure the record display, giving us some really powerful flexibility in how we show records. In this contrived example, I'm going to create a field that changes the background color of the content.
    Create a Select Box field. Each option key will be a hex color, while the value will be the name the record creator will choose. Set the field key to record_background Set the field formatting to Custom, and the format to simply: {$formValue}. This means it will output our hex value instead of the color name. In the display template assigned to this database for records, we can use the field like so: <div style='background-color: #{$record->customFieldDisplayByKey('record_background', 'listing')|raw}' class='ipsPad'> ...rest of the template... </div> Now, when you create a record, you can choose a color and that color will be used when the record is shown:
    You can use this approach in others ways - toggles to control the layout of the record, or options for grid sizes, or even take an upload field for images and set the background of an element as that image.
     
    3. Pass data to 3rd-party integrations
    Pages has built-in support for several 3rd party integrations, such as Spotify, Soundcloud, YouTube and Google Maps. But using custom fields, you can pass data to other services too. Let's say we wanted to embed an iTunes album widget into each of our records - perhaps the album is relevant to the Pages record in some way and we hope to encourage some click-throughs. In this example, we'll use the embed.ly service. 
    Create a URL custom field. Set the field key to itunes_album Set the field formatting to Custom, and the format to: <a class="embedly-card" href="{$formValue}">iTunes Album</a> <script async src="//cdn.embedly.com/widgets/platform.js" charset="UTF-8"></script> In your database display template, position the field as desired by adding: {$record->customFieldDisplayByKey('itunes_album', 'listing')|raw} Now when you add an iTunes album link to your record, you'll get an embed automatically!

    This approach is great for a range of uses. Perhaps you have an Amazon Associates account and want to add a relevant product link to each of your records so that you earn a commission when users click through. Using database fields and templates in this way, it's easy to set up.
     
    I hope that's given you some ideas of other ways you might use database fields in Pages. Share any interesting uses you've come up with in the comments!
×
×
  • Create New...