# fzf --style Presets: default, minimal, and full Configuration Guide

> Explore fzf --style presets default minimal and full to customize border visibility info line placement and cursor highlighting with simple flags

- Repository: [Junegunn Choi/fzf](https://github.com/junegunn/fzf)
- Tags: deep-dive
- Published: 2026-03-01

---

**fzf provides three built-in `--style` presets—`default`, `minimal`, and `full[:BORDER_STYLE]`—that control border visibility, info line placement, and cursor highlighting with a single flag.**

The `junegunn/fzf` command-line fuzzy finder simplifies UI customization through its `--style` flag, allowing users to switch between minimal and full-featured interfaces without manually configuring individual border and display options. These presets are implemented in the Go source code and affect everything from border shapes to the position of the info line.

## Available fzf --style Presets

fzf offers three distinct presets in [`src/options.go`](https://github.com/junegunn/fzf/blob/main/src/options.go) that reconfigure the terminal UI by resetting platform defaults and applying specific settings through the `applyPreset` function.

### The `default` Preset

The `default` preset clears all border shapes and disables visual enhancements to provide a clean, basic interface. According to the source code at lines 76–89, this preset sets `tui.BorderNone` for the list, input, header, footer, and preview windows, effectively removing all borders. It also disables the cursor line (`CursorLine = false`) and uses the standard `infoDefault` info style, which places the info line at the top of the interface.

### The `minimal` Preset

The `minimal` preset builds upon the default configuration but adds subtle line borders to specific areas while suppressing decorative elements. As implemented in lines 94–106, this preset applies `tui.BorderLine` to the footer and preview windows only, leaving other sections borderless. It forces the info line to be empty (while keeping `InfoStyle = infoDefault`), sets `Theme.Gutter` to an empty color attribute, and ensures the cursor line remains disabled.

### The `full` Preset with Optional Border Styles

The `full` preset enables a complete UI with borders on all sections, inline-right info positioning, and cursor highlighting. Lines 108–132 define this preset to set `InfoStyle = infoInlineRight`, enable `CursorLine = true`, and activate gutters while leaving separators and scrollbars at their defaults.

You can optionally specify a border style by appending a colon and style name: `full:rounded`, `full:sharp`, `full:bold`, `full:double`, etc. When a border style is provided (parsed via `parseBorder` at lines 111–115), that shape applies to **all** borders including the list, input, header, footer, and preview windows. Without a specifier, the preset uses `tui.DefaultBorderShape` (rounded).

## How --style Presets Work in the Source Code

The preset logic resides in [`src/options.go`](https://github.com/junegunn/fzf/blob/main/src/options.go), where the `applyPreset` function orchestrates the UI transformation. This function first resets the theme to platform defaults, then conditionally applies preset-specific overrides based on the user-supplied value. The implementation handles three specific cases: `default` (lines 76–89), `minimal` (lines 94–106), and `full` with optional border parsing (lines 108–132). When using the `full` variant with a custom border, the code calls `parseBorder` to convert the string argument (e.g., `"sharp"`, `"double"`) into the corresponding `tui.BorderShape` constant.

## Practical Examples

Use these commands to test each preset:

```bash

# Basic interface with no borders and top info line

fzf --style=default

# Thin line borders on footer and preview only, no info line

fzf --style=minimal

# Full UI with rounded borders (default) and inline-right info

fzf --style=full

# Full UI with sharp corners instead of rounded

fzf --style=full:sharp

# Full UI with double-line borders

fzf --style=full:double

```

Note that when using tmux integration, the `--style=full:STYLE` syntax also affects the tmux pop-up borders, as noted in [`src/tmux.go`](https://github.com/junegunn/fzf/blob/main/src/tmux.go).

## Summary

- **`default`**: Removes all borders (`tui.BorderNone`), disables cursor line, places info at top.
- **`minimal`**: Adds `tui.BorderLine` to footer and preview only, suppresses info line content and gutters.
- **`full[:STYLE]`**: Enables all borders, inline-right info, cursor line, and optional border shapes (rounded, sharp, bold, double) applied globally.

## Frequently Asked Questions

### What is the difference between the default and minimal presets in fzf?

The `default` preset removes all borders and keeps the info line visible at the top, while `minimal` adds thin line borders specifically to the footer and preview windows and forces the info line to be empty. Both disable the cursor line, but `minimal` also clears the gutter color attribute.

### How do I use sharp or double borders with the full preset?

Append the border style after a colon: `--style=full:sharp` or `--style=full:double`. The `parseBorder` function in [`src/options.go`](https://github.com/junegunn/fzf/blob/main/src/options.go) (lines 111–115) converts these strings into border shapes that apply to all UI sections including the list, input, header, footer, and preview windows.

### Do fzf style presets affect the info line position?

Yes, the presets configure different `InfoStyle` values. The `default` and `minimal` presets use `infoDefault` (top placement), while the `full` preset switches to `infoInlineRight`, displaying the info line to the right of the input prompt.

### Where is the --style flag implemented in the fzf source code?

The implementation resides in [`src/options.go`](https://github.com/junegunn/fzf/blob/main/src/options.go), specifically within the `applyPreset` function (lines 76–132). This function handles preset parsing, resets theme defaults, and applies specific configurations for `default`, `minimal`, and `full` variants including optional border style parsing.